Module Mutex


module Mutex: sig .. end
相互排除ロック

Mutex (相互排除ロック -- mutual-exclusion lock)はクリティカルセクションを実装し、変更可能な共有データ構造を並行アクセスから保護するために使います。 典型的な使用法は次のようになります(m はデータ構造 D に対応づけられた Mutex とします)。

     Mutex.lock m;
     (* Critical section that operates over D *);
     Mutex.unlock m
   


type t 
Mutex の型。
val create : unit -> t
新しい Mutex を返します。
val lock : t -> unit
与えられた Mutex をロックします。任意の時点においてある Mutex をロックできるのはただひとつのスレッドだけです。 他のスレッドによってロックされている Mutex をロックしようとすると、ロックしようとしたスレッドはその Mutex のロックが解除されるまで中断することになります。
val try_lock : t -> bool
Mutex.lock と同じですが、 Mutex が既にロックされていた場合でもスレッドは中断せず、単に false を返します。 Mutex がロックされていなかった場合には、その Mutex をロックし true を返します。
val unlock : t -> unit
与えられた Mutex のロックを解除します。 その Mutex をロックしようとして中断していたスレッドは再開します。