- mon_enter -> ()[permalink][rdoc][edit]
- 
モニターをロックします。 一度に一つのスレッドだけがモニターをロックできます。既にモニターがロックされている場合は、ロックが開放されるまでそのスレッドは待ちます。 Thread::Mutex#lock に相当します。 Mutex#lock と違うのは現在のモニターの所有者が現在実行されているスレッドである場合、何度でもロックできる点です。ロックした回数だけ mon_exit を呼ばなければモニターは解放されません。 例 require 'monitor' buf = [] buf.extend(MonitorMixin) buf.mon_enter buf.mon_enterMutex#lock ではデッドロックが起きます。 Mutex でデッドロックする例 m = Mutex.new m.lock m.lock # => deadlock; recursive locking (ThreadError)