crossbeam - Rust (original) (raw)
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.
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.
Selects from a set of channel operations.
Creates a new scope for spawning threads.