Luv.Mutex
Mutexes.
See Synchronization primitives in the user guide and Mutex locks in libuv.
type t = Luv_c_types.Mutex.t Ctypes.ptr
Binds uv_mutex_t
.
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)
val destroy : t -> unit
Cleans up a mutex.
Binds uv_mutex_destroy
. See pthread_mutex_destroy(3p)
.
val 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.
Tries to take the mutex without blocking.
Binds uv_mutex_trylock
. See pthread_mutex_trylock(3p)
.
val unlock : t -> unit
Releases the mutex.
Binds uv_mutex_unlock
. See pthread_mutex_unlock(3p)
.