module Sync_m

aliases: Synchronizer_m

要約

スレッド同期機構である再入可能な reader/writer ロック機能を Mix-in により提供します。

includeしたクラスではinitializeでsuperを呼び出しておく必要があります。

目次

インスタンスメソッド
定数

インスタンスメソッド

sync_exclusive? -> bool[permalink][rdoc]
exclusive? -> bool

排他ロックされているかどうかを返します。

sync_lock(mode = EX) -> self[permalink][rdoc]
lock(mode = EX) -> self

ロック状態を変更します。変更できるまで現在のスレッドの実行をブロックします。

[PARAM] mode:
変更後の状態を指定します。通常、 Sync_m::EX, Sync_m::SH のどれかを指定します。
sync_locked? -> bool[permalink][rdoc]
locked? -> bool

ロックされているかどうかを返します。

sync_shared? -> bool[permalink][rdoc]
shared? -> bool

共有ロックされているかどうかを返します。

sync_ex_count -> Integer[permalink][rdoc]

[TODO]

sync_ex_count=(count)[permalink][rdoc]

[TODO]

sync_ex_locker -> Thread | nil[permalink][rdoc]

[TODO]

sync_ex_locker=(thread)[permalink][rdoc]

[TODO]

sync_extend[permalink][rdoc]

[TODO]

sync_inspect[permalink][rdoc]

[TODO]

sync_mode -> Symbol[permalink][rdoc]

現在のロック状態を返します。

sync_sh_locker -> Hash[permalink][rdoc]

[TODO]

sync_sh_locker=(hash)[permalink][rdoc]

[TODO]

sync_synchronize(mode = EX) {...} -> object[permalink][rdoc]
synchronize(mode = EX) {...} -> object

ロック状態を変更してブロックを実行します。ブロックの実行結果を返します。

[PARAM] mode:
変更後の状態を指定します。通常、 Sync_m::UN, Sync_m::EX, Sync_m::SH のどれかを指定します。
sync_try_lock(mode = EX) -> bool[permalink][rdoc]
try_lock(mode = EX) -> bool

ロック状態を変更します。変更できたかどうかをtrueかfalseで返し、ブロックしません。

[PARAM] mode:
変更後の状態を指定します。通常、 Sync_m::EX, Sync_m::SH のどれかを指定します。
sync_unlock(mode = EX) -> self[permalink][rdoc]
unlock(mode = EX) -> self

ロックを解除します。

[PARAM] mode:
変更後の状態を指定します。通常、 Sync_m::UN, Sync_m::EX, Sync_m::SH のどれかを指定します。
sync_upgrade_waiting -> [Thread][permalink][rdoc]

[TODO]

sync_upgrade_waiting=(arr)[permalink][rdoc]

[TODO]

sync_waiting -> [Thread][permalink][rdoc]

[TODO]

sync_waiting=(arr)[permalink][rdoc]

[TODO]

定数

EX -> Symbol[permalink][rdoc]

排他ロックされている状態を表す定数です。オブジェクトの状態を更新する場合のように、 1つのスレッドがオブジェクトを独占的に使用したい場合に用います。排他ロック中に他のスレッドはオブジェクトを共有/排他ロックできません。

SH -> Symbol[permalink][rdoc]

共有ロックされている状態を表す定数です。複数のスレッドが同時にオブジェクトを使用できる場合に用います。複数のスレッドが共有ロックしている場合、どのスレッドもオブジェクトを排他ロックできません。

UN -> Symbol[permalink][rdoc]

ロックされていない状態を表す定数です。