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