Lwt_mutexSourceCooperative locks for mutual exclusion
Type of Lwt mutexes
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
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 with_lock. If an exception is raised from f, the mutex is also unlocked before the scope of with_lock is exited.