Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > mutex_mライブラリ > Mutex_mモジュール

module Mutex_m

クラスの継承リスト: Mutex_m

Abstract

スレッド同期機構である Mutex のモジュール版です。普通のオブジェクトを extend により Mutex にする事ができます。

[[unknown:ruby-list:1991]]

require "mutex_m"
obj = Object.new
obj.extend(Mutex_m)
obj.lock
obj.unlock

インスタンスメソッド

mu_lock
lock

Mutex_m をロックします。一度にひとつのスレッドしかロックできません。 既にロックされている mutex に対してロックを行おうとしたスレッドは Mutex_m のロックが解放されるまで、実行が停止されます。

self を返します。

mu_locked?
locked?

Mutex_m がロックされている時、真を返します。

mu_synchronize { ... }
synchronize { ... }

Mutex_m をロックし、ブロックを実行します。実行後に必ず Mutex_m のロックを解放します。

mu_try_lock
try_lock

Mutex_m をロックしようとして、ロックが成功した場合、真を返します。 ロックできなかった場合にはブロックせず偽を返します。

mu_unlock
unlock

Mutex_m のロックを解放します。 Mutex_m のロック待ちになっていたスレッドの実行は再開されます。

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

Methods

Classes