咳@幽閉中です。
時間とLinux boxがなくてお話に参加できません。


:At Mon, 7 Jun 1999 18:17:50 +0900,
:Shin-ichiro Hara <sinara / blade.nagaokaut.ac.jp> wrote:
:> そうですね。だから、ユーザーの条件変数の一般的利用法としては、
:(snip)
:> mutex.synchronize {
:>   ...
:>   while ある条件
:>     cond_var.wait(mutex)
:>   end
:>   ...
:> }
:> 
:> と書くべきなんですね。せきさんのプログラムでは前者で十分だけど。
:
:ですね。

なるほど!
そういえば、そういう記述を読んだ気がしてきました。
当時はなんでwhileなんだろう…と疑問に思いつつ流していました。

あ、遠い昔に移植したデバイスドライバもそんな感じだった気が…。
# こっちはsleep()/wakeup()だったかな

職場に行けたら pthread もう一度よく勉強します。

状態を待っている側が while で調べるようにしておけば
起こす側が signal/broadcast のどちらで起こしても安全ですね。
と、いうか while で待たないと危険なんですね。

# ちょっと勘違いして覚えているとこがありました

-- 
咳