package lwt
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=e07d845cd8b105802d975e9d09deee09dcfadbb66d2455d81f09608e42786186
md5=1b2fa7df39a70be1925acdabb8b3f8aa
doc/lwt/Lwt_mutex/index.html
Module Lwt_mutex
Cooperative locks for mutual exclusion
val create : unit -> tcreate () creates a new mutex, which is initially unlocked
lock mutex lockcs the mutex, that is:
- if the mutex is unlocked, then it is marked as locked and
lockreturns immediately
- if it is locked, then
lockwaits for all threads waiting on the mutex to terminate, then it resumes when the last one unlocks the mutex
Note: threads are woken up in the same order they try to lock the mutex
val unlock : t -> unitunlock 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 -> boollocked mutex returns whether mutex is currently locked
val is_empty : t -> boolis_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.