wait(timeout = nil) -> bool
[permalink][rdoc]モニタのロックを開放し、現在のスレッドを停止します。
これを呼ぶスレッドはモニタのロックを保持している必要があります。
MonitorMixin::ConditionVariable#signal や MonitorMixin::ConditionVariable#broadcast で起こされるまでスレッドは停止し続けます。
timeout を与えた場合は最大 timeout 秒まで停止した後にスレッドを再開します。
実行を再開したスレッドはモニタのロックを保持した状態になります。これによって危険領域(critical section)上で動作しているスレッドはただ一つになり、排他を実現します。
true を返します。timeout が与えられていて待ち時間が timeout を越えた場合は false を返します。
[SEE_ALSO] MonitorMixin::ConditionVariable#wait_while, MonitorMixin::ConditionVariable#wait_until