OUnitShared.Mutex
type t = int * scope
val create : 'a -> int * 'b
val lock : shared -> (int * scope) -> unit
val try_lock : shared -> (int * scope) -> bool
val unlock : shared -> (int * scope) -> unit
val with_lock : shared -> (int * scope) -> (unit -> 'a) -> 'b