names=unlock
visibility=public
kind=defined

--- unlock     -> self | nil
mutex のロックを解放します。mutex のロック待ちになっていたスレッドの実行は再開されます。

@return self がロックされていなければ nil を返します。そうでなければself を返します。

例:

 m = Mutex.new
 begin 
   m.lock
   # critical part
 ensure
   m.unlock
 end

Mutex はロックしたスレッド以外からロックを開放することは出来ません。
ロックしたスレッド以外から unlock が呼ばれると ThreadError が発生します。

 m = Mutex.new
 m.lock
 Thread.new do
   m.unlock # => ThreadError
 end.join

@raise ThreadError 自身をロックしたスレッド以外から呼ばれた場合に発生します。

