instance method Thread::Mutex#sleep

sleep(timeout = nil) -> Integer[permalink][rdoc][edit]

与えられた秒数の間ロックを解除してスリープして、実行後にまたロックします。

[PARAM] timeout:
スリープする秒数を指定します。省略するとスリープし続けます。
[EXCEPTION] ThreadError:
自身がカレントスレッドによってロックされていない場合に発生します。

[注意] 2.0 以降ではスリープ中でも、シグナルを受信した場合などに実行が再開(spurious wakeup)される場合がある点に注意してください。



m = Mutex.new
th = Thread.new do
  m.lock
  m.sleep(2)
end
th.status # => "run"
sleep 1
th.status # => "sleep"
sleep 1
th.status # => false