[過去ログ] Boost総合スレ part9 (981レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
872
(2): デフォルトの名無しさん [sage] 2012/02/16(木) 18:47:36.71 AAS
>>871
871(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