Lwt_mutex
Cooperative locks for mutual exclusion
val create : unit -> t
create ()
creates a new mutex, which is initially unlocked
lock mutex
lockcs the mutex, that is:
lock
returns immediatelylock
waits for all threads waiting on the mutex to terminate, then it resumes when the last one unlocks the mutexNote: threads are woken up in the same order they try to lock the mutex
val unlock : t -> unit
unlock mutex
unlock the mutex if no threads is waiting on it. Otherwise it will eventually removes the first one and resumes it.
val is_locked : t -> bool
locked mutex
returns whether mutex
is currently locked
val is_empty : t -> bool
is_empty mutex
returns true
if they are no thread waiting on the mutex, and false
otherwise
with_lock lock f
is used to lock a mutex within a block scope. The function f ()
is called with the mutex locked, and its result is returned from the call to with_lock
. If an exception is raised from f, the mutex is also unlocked before the scope of with_lock
is exited.