package luv

  1. Overview
  2. Docs
Binding to libuv: cross-platform asynchronous I/O

Install

Dune Dependency

Authors

Maintainers

Sources

luv-0.5.11.tar.gz
sha256=ccecf47311b384b8b7437eaac92b4d0b3f091971ed10241f672b0c2a2c8a3a43
md5=efe61a4b4725d59901984022c02ef698

doc/luv/Luv/Mutex/index.html

Module Luv.MutexSource

Mutexes.

See Synchronization primitives in the user guide and Mutex locks in libuv.

Sourcetype t = Luv_c_types.Mutex.t Ctypes.ptr

Binds uv_mutex_t.

Sourceval init : ?recursive:bool -> unit -> (t, Error.t) Result.result

Allocates and initializes a mutex.

Binds uv_mutex_init. See pthread_mutex_init(3p).

If ?recursive is set to true, calls uv_mutex_init_recursive instead.

?recursive requires libuv 1.15.0.

Feature check: Luv.Require.(has mutex_init_recursive)

Sourceval destroy : t -> unit

Cleans up a mutex.

Binds uv_mutex_destroy. See pthread_mutex_destroy(3p).

Sourceval lock : t -> unit

Takes a mutex.

Binds uv_mutex_lock. See pthread_mutex_lock(3p).

The calling thread is blocked until it obtains the mutex.

Sourceval trylock : t -> (unit, Error.t) Result.result

Tries to take the mutex without blocking.

Binds uv_mutex_trylock. See pthread_mutex_trylock(3p).

Sourceval unlock : t -> unit

Releases the mutex.

Binds uv_mutex_unlock. See pthread_mutex_unlock(3p).

OCaml

Innovation. Community. Security.