Library
Module
Module type
Parameter
Class
Class type
Lock-free data structures for Multicore OCaml
module Ws_deque : sig ... end
A lock-free single-producer, multi-consumer dynamic-size double-ended queue (deque).
module Spsc_queue : sig ... end
module Mpsc_queue : sig ... end
A lock-free multi-producer, single-consumer, thread-safe queue without support for cancellation. This makes a good data structure for a scheduler's run queue and is currently (September 2022) used for Eio's scheduler.
module Treiber_stack : sig ... end
Classic multi-producer multi-consumer Treiber stack. Robust and flexible. Recommended starting point when needing LIFO structure.
module Michael_scott_queue : sig ... end
Michael-Scott Queue. A classic multi-producer multi-consumer queue, robust and flexible. Recommended starting point when needing FIFO structure. It is inspired by Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms.
module Mpmc_relaxed_queue : sig ... end
A lock-free multi-producer, multi-consumer, thread-safe, relaxed-FIFO queue.
module Backoff : sig ... end
Truncated exponential backoff.