前田です。

In message "[ruby-list:6807] Re: Mutex/ConditionVariable/Queue"
石塚圭樹 <keiju / rational.com> wrote:

|>|それもありますが. 本来必要のない実装がMutexに入り込んでいますよね. 
|>
|>たしかにMutexだけ使ってConditionVariableを使わない人にとっては
|>必要ないですね。
|>Mutexじゃなくて別のクラス名にした方がよいのかな...。
|
|ですかねえ...

考えてみたんですけどMixinにしようかなと思います。

obj.extend(MonitorMixin) # monitorかmoniterかどっちでしたっけ?(^^;
cond = obj.condition_variable # ConditionVariableを生成

Thread.start {
  obj.synchronize {
    ...
    cond.wait
  }
}

...
obj.synchronize {
  ...
  cond.signal
}
    
これだとJavaと違って、ロックはリソースに統合されてますけど
条件変数の方は複数にできますよね。
synchronizeはネストできるようにしないと不便そうですね。

-- 
前田 修吾