package lwt

  1. Overview
  2. Docs
Promises and event-driven I/O

Install

dune-project
 Dependency

Authors

Maintainers

Sources

5.4.2.tar.gz
md5=ba3659a8918d8e7cb0f4ef9a83945f90
sha512=9f46fb2e56dc7bd57a12d5ab4dc68719947a1462f336087a95e991d087bb9b5b8dee2592d0f7d35abc507d9a641dd221c44c949c81d00e26c673a067d94ba3f4

doc/lwt/Lwt_mutex/index.html

Module Lwt_mutexSource

Cooperative locks for mutual exclusion

Sourcetype t

Type of Lwt mutexes

Sourceval create : unit -> t

create () creates a new mutex, which is initially unlocked

Sourceval lock : t -> unit Lwt.t

lock mutex lockcs the mutex, that is:

  • if the mutex is unlocked, then it is marked as locked and lock returns immediately
  • if it is locked, then lock waits 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

Sourceval 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.

Sourceval is_locked : t -> bool

locked mutex returns whether mutex is currently locked

Sourceval is_empty : t -> bool

is_empty mutex returns true if they are no thread waiting on the mutex, and false otherwise

Sourceval 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 with_lock. If an exception is raised from f, the mutex is also unlocked before the scope of with_lock is exited.

OCaml

Innovation. Community. Security.