咳@勉強不足です。

    >> |:ConditionVariable のwaitメソッドの引数 mutex は
    >> |:どう使えばよいのでしょうか?
    >> |:なにかサンプルスクリプトはないでしょうか?

    >> |こんな感じでしょうか?
    前> そんな感じです。(いいかげんな答ですいません(^_^;)

やっぱりそんな感じだったのか‥。
遠いむかし、UNIXのデバイスドライバを読んでいた頃の記憶を掘り起こして
勘で書きました。

例題はMINIX本のモニタのあたりのまねです。


    Message-Id: <199905240737.QAA07643 / blade.nagaokaut.ac.jp>
    原> # synchronize を使わないのは何か理由があるんですか?

こっちは意図して書きました。
@full.wait(@mutex) で unlock/lock するのを強調するつもりで 
synchronize を使わなかったんです。


    >> ConditionVariable#wait(mutex) ってのも分かりにくいですね。
    >> この mutex ってロックするために渡すのではなく、一時的に解
    >> 放してもらうためにあるんですね。
    >> 
    >> ところでなんでこんな仕様になっているんですかね。そもそも
    >> wait とか stop とかは dead lock になる可能性があるので、
    >> 必ず注意が必要なのだから、むしろその部分はユーザーまかせ
    >> ていいのではないでしょうか。わざわざ指定するのは注意の喚
    >> 起のため?

    前> というかpthreadなどに合わせただけです。

7年くらい前に pthread のマニュアルを和訳したときのメモを読んで
みました。boadcast もあるし pthread の状態変数と同じなんですね。

「pthread」と同じ、とわかってしまえば今のままの仕様が好きです。
よりRuby風のものや、モニタ風のものはこれをもとに作れそうなので。


ところで、
thread.rb を読んでいると、同期のしかけを自分でつくれそうな
気がしてきますね。
Java の synchronize するメソッド(?)みたいのもできそう。
Mutexのようなモジュールを書いて mix-in すればできないかな。

咳