マルチスレッドプログラミング相談室
■ このスレッドは過去ログ倉庫に格納されています
0736デフォルトの名無しさん
NGNGマルチスレッド対応にしようとしたのだが…
void ref() {
InterlockedIncrement(&m_ref);
}
void release() {
if (InterlockedDecrement(&m_ref) == 0) {
delete this;
}
}
ところが、delete thisの直後にref()が呼ばれると、m_ref自体が解放された領域にあるため、
とんでもない値になってしまう。参照カウントをメンバー変数にするのが間違い?
どうしたらいんだろう?マルチスレッドのエキスパート様の降臨おながいします
■ このスレッドは過去ログ倉庫に格納されています