Functor Duppy.Monad.Mutex.Factory

module Factory: 
functor (Control : Mutex_control) -> Mutex_t
Parameters:
Control : Mutex_control

type mutex 

Type for a mutex.

module Control: Duppy.Monad.Mutex.Mutex_control 
val create : unit -> mutex

create () creates a mutex.

val lock : mutex -> (unit, 'a) Duppy.Monad.t

A computation that locks a mutex and returns unit afterwards. Computation will be blocked until the mutex is sucessfuly locked.

val try_lock : mutex -> (bool, 'a) Duppy.Monad.t

A computation that tries to lock a mutex. Returns immediatly true if the mutex was sucesfully locked or false otherwise.

val unlock : mutex -> (unit, 'a) Duppy.Monad.t

A computation that unlocks a mutex. Should return immediatly.