1234567891011121314151617181920212223242526272829(* This file is part of Luv, released under the MIT license. See LICENSE.md for
details, or visit https://github.com/aantron/luv/blob/master/LICENSE.md. *)typet=C.Types.Mutex.tCtypes.ptrletinit?(recursive=false)()=letmutex=Ctypes.addr(Ctypes.makeC.Types.Mutex.t)inletresult=ifrecursivethenC.Functions.Mutex.init_recursivemutexelseC.Functions.Mutex.initmutexinError.to_resultmutexresultletdestroy=C.Functions.Mutex.destroyletlock=C.Blocking.Mutex.locklettrylockmutex=C.Functions.Mutex.trylockmutex|>Error.to_result()letunlock=C.Functions.Mutex.unlock