[過去ログ] Boost総合スレ part9 (981レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
872(2): デフォルトの名無しさん [sage] 2012/02/16(木) 18:47:36.71 AAS
>>871871(1): デフォルトの名無しさん [] 2012/02/16(木) 15:37:52.34 AAS
threadのwaitってどこのサイトみても
…
while(!ready) {
cond.wait(lock);
}
…
のようになっていますよね。これを起こす場合には
ready = true;
cond.notify_all();
とすると思うのですが、while分の!readyを判定してからcon.waitをかけるまでの間に上記の起こすコードが呼ばれた場合には、動かなくなってしまう気がします。
これを回避する方法などあるのでしょうか。timed_waitでしょうか。
cond.wait(lock);でロックを要求している素晴らしい設計を無視するなよ
873(1): デフォルトの名無しさん [] 2012/02/16(木) 19:01:27.73 AAS
>>872
ありがとうございます。
よくよく考えてみるとwhile文の前と起こすコードの先頭でミューテックスをロックすればいいんですね。
今まで引っかかっていたものがスッキリとれました!
874: デフォルトの名無しさん [sage] 2012/02/16(木) 21:10:13.56 AAS
>>872,873を理解するまで1時間かかってしまった
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s