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