Module Luv.Rwlock

Read-write locks.

See Read-write locks in libuv.

type t

Binds uv_rwlock_t.

val init : unit -> (tError.t) Result.result

Allocates and initializes a read-write lock.

Binds uv_rwlock_init. See pthread_rwlock_init(3p).

val destroy : t -> unit

Cleans up a read-write lock.

Binds uv_rwlock_destroy. See pthread_rwlock_destroy(3p).

val rdlock : t -> unit

Takes a read-write lock for reading (shared access).

Binds uv_rwlock_rdlock. See pthread_rwlock_rdlock(3p).

val tryrdlock : t -> (unit, Error.t) Result.result

Tries to take a read-write lock for reading without blocking.

Binds uv_rwlock_tryrdlock. See pthread_rwlock_tryrdlock(3p).

val rdunlock : t -> unit

Releases a read-write lock after it was taken for reading.

Binds uv_rwlock_rdunlock. See pthread_rwlock_unlock(3p).

val wrlock : t -> unit

Takes a read-write lock for writing (exclusive access).

Binds uv_rwlock_wrlock. See pthread_rwlock_wrlock(3p).

val trywrlock : t -> (unit, Error.t) Result.result

Tries to take a read-write lock for writing without blocking.

Binds uv_rwlock_trywrlock. pthread_rwlock_trywrlock(3p).

val wrunlock : t -> unit

Releases a read-write lock after it was taken for writing.

Binds uv_rwlock_wrunlock. See pthread_rwlock_unlock(3p).