[過去ログ] マルチスレッドプログラミング相談室 (986レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
902(1): 02/11/15 23:39 AAS
参照を獲得する処理そのものがアトミックでなければいけない。
つまり、ref や release に到達する時点でそのオブジェクトに対する排他制御が
かかってなきゃいけない。それらのメソッドに入ってからでは遅い。
Object* List::get(int index){
criticalSections_[index % 4].enter();
Object* o = items_[index];
if(o != NULL){
o->ref();
}
criticalSections_[index % 4].leave();
return o;
}
void List::remove(index){
criticalSections_[index % 4].enter();
Object* o = items_[index];
if(o != NULL){
o->release();
items_[index] = NULL;
}
criticalSections_[index % 4].leave();
return o;
}
こんな感じか?
908(2): 02/11/16 01:24 AAS
>>902
getって削除された要素を飛ばして次の要素を返すんじゃないか?
あと、removeが値を返してるよ。
>>905
その参照を増やす手段がgetなんだけど…
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.038s