Module Await_sync

Basic synchronization primitives using Await.

exception Poisoned

Poisoned is the exception raised when trying to access a synchronization or communication primitive that has been poisoned.

exception Frozen

Frozen is the exception raised when trying to access a synchronization or communication primitive that has been frozen.

exception Empty

Empty is the exception raised when the target communication structure was empty.

exception Already_full

Already_full is the exception raised when the target communication structure was already full.

module Atom : sig ... end

An atom is intended to be an easy-to-use waitable atomic location for storing state represented as an immutable data structure.

module Awaitable : sig ... end

An awaitable represents an atomic location whose change of value can be awaited upon. Awaitables can be used to implement all kinds of blocking data structures, including locks, condition variables, and blocking queues.

module Barrier : sig ... end

A poisonable multi-shot synchronization barrier.

module Countdown_latch : sig ... end

A poisonable one-shot countdown latch.

module Ivar : sig ... end

A write-once cell that can be empty or full (i.e., hold a single value).

module Mutex : sig ... end

A poisonable mutual exclusion lock.

module Mvar : sig ... end

A linear mutable cell that can be either empty or full (i.e., hold a single unique value at a time).

module Rwlock : sig ... end

A poisonable and freezable multiple readers, single writer lock.

module Scope : sig ... end

A scope for structured concurrency.

module Semaphore : sig ... end

A poisonable counting semaphore.

module Stack : sig ... end

A multi-producer, multi-consumer concurrent stack.