Expand description
Tools for concurrent programming.
Atomics
AtomicCell
, a thread-safe mutable memory location.AtomicConsume
, for reading from primitive atomic types with “consume” ordering.
Data structures
deque
, work-stealing deques for building task schedulers.ArrayQueue
, a bounded MPMC queue that allocates a fixed-capacity buffer on construction.SegQueue
, an unbounded MPMC queue that allocates small buffers, segments, on demand.
Memory management
epoch
, an epoch-based garbage collector.
Thread synchronization
channel
, multi-producer multi-consumer channels for message passing.Parker
, a thread parking primitive.ShardedLock
, a sharded reader-writer lock with fast concurrent reads.WaitGroup
, for synchronizing the beginning or end of some computation.
Utilities
Backoff
, for exponential backoff in spin loops.CachePadded
, for padding and aligning a value to the length of a cache line.scope
, for spawning threads that borrow local variables from the stack.
Modules
- Atomic types.
- Multi-producer multi-consumer channels for message passing.
- Concurrent work-stealing deques.
- Epoch-based memory reclamation.
- Concurrent queues.
- Thread synchronization primitives.
- Threads that can borrow variables from the stack.
- Miscellaneous utilities.
Macros
- Selects from a set of channel operations.
Functions
- Creates a new scope for spawning threads.