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
val create : unit -> t
val lock : t -> unit
val try_lock : t -> bool
Mutex.lock
と同じですが、 Mutex が既にロックされていた場合でもスレッドは中断せず、単に false
を返します。
Mutex がロックされていなかった場合には、その Mutex をロックし true
を返します。val unlock : t -> unit