module Lwt_mutex:Cooperative locks for mutual exclusionsig
..end
type
t
val create : unit -> t
create ()
creates a new mutex, which is initially unlockedval lock : t -> unit Lwt.t
lock mutex
lockcs the mutex, that is:
Lwt_mutex.lock
returns immediatlyLwt_mutex.lock
waits for all threads waiting on
the mutex to terminate, then it resumes when the last one
unlocks the mutexval 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 lockedval is_empty : t -> bool
is_empty mutex
returns true
if they are no thread waiting on
the mutex, and false
otherwiseval with_lock : t -> (unit -> 'a Lwt.t) -> 'a Lwt.t
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 . If an exception
is raised from f, the mutex is also unlocked before the scope of
is exited.