package luv

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

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

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

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.