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 がロックされていなかった場合、ロックして true を返します。
val unlock : t -> unit
与えられた mutex をアンロックします。この mutex をロックしようとしていた他スレッドがあった場合は再スタートします。