Cooperative locks for mutual exclusion
Type of Lwt mutexes
lock mutex
lockcs the mutex, that is:
Note: threads are woken up in the same order they try to lock the mutex
unlock mutex
unlock the mutex if no threads is waiting on
it. Otherwise it will eventually removes the first one and
resumes it.
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
CUSTOM(with_lock)
. If an exception
is raised from f, the mutex is also unlocked before the scope of
CUSTOM(with_lock)
is exited.