sig
type t = Mutex.t
val create : unit -> Mutex.t
val equal : Mutex.t -> Mutex.t -> bool
val lock : Mutex.t -> unit
val try_lock : Mutex.t -> bool
val timedlock : Mutex.t -> Time.t -> bool
val unlock : Mutex.t -> unit
val am_holding_mutex : Mutex.t -> bool
val critical_section : Mutex.t -> f:(unit -> 'a) -> 'a
val update_signal : Mutex.t -> Condition.t -> f:(unit -> 'a) -> 'a
val update_broadcast : Mutex.t -> Condition.t -> f:(unit -> 'a) -> 'a
end