Module Await_sync.AwaitSource

Synchronization primitives which use Await.t

Sourcemodule 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.

Sourcemodule 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.

Sourcemodule Barrier : sig ... end

A poisonable multi-shot synchronization barrier.

Sourcemodule Countdown_latch : sig ... end

A poisonable one-shot countdown latch.

Sourcemodule Ivar : sig ... end

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

Sourcemodule Lazy : sig ... end

A deferred computation.

Sourcemodule Mutex : sig ... end

A poisonable mutual exclusion lock.

Sourcemodule Bounded_spsc_queue : sig ... end

A bounded, single-producer single-consumer queue implemented via a ring buffer.

Sourcemodule Mpmc_queue : sig ... end

A multi-producer, multi-consumer concurrent queue.

Sourcemodule Mvar : sig ... end

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

Sourcemodule Rwlock : sig ... end

A poisonable and freezable multiple readers, single writer lock that can be acquired for an unbounded period of time.

Sourcemodule Scope : sig ... end

A scope for structured concurrency.

Sourcemodule Semaphore : sig ... end

A poisonable counting semaphore.

Sourcemodule Stack : sig ... end

A multi-producer, multi-consumer concurrent stack.