Module sync

Source

Modules§

atomic
barrier
Synchronization primitive allowing multiple threads to synchronize the beginning of some computation.
lazy
Synchronization primitives for lazy evaluation.
lock_api
Spin synchronisation primitives, but compatible with lock_api.
mutex
Locks that have the same behaviour as a mutex.
once
Synchronization primitives for one-time evaluation.
relax
Strategies that determine the behaviour of locks when encountering contention.
rwlock
A lock that provides data access to either one writer or many readers.

Structs§

Arc
A thread-safe reference-counting pointer. ‘Arc’ stands for ‘Atomically Reference Counted’.
MutexGuard
A generic guard that will protect some data access and uses either a ticket lock or a normal spin mutex.
RwLockReadGuard
A guard that provides immutable data access.
Spin
A strategy that rapidly spins while informing the CPU that it should power down non-essential components via core::hint::spin_loop.
Weak
Weak is a version of Arc that holds a non-owning reference to the managed allocation.
UniqueArcExperimental
A uniquely owned Arc.

Traits§

RelaxStrategy
A trait implemented by spinning relax strategies.

Type Aliases§

Barrier
A primitive that synchronizes the execution of multiple threads. See barrier::Barrier for documentation.
Lazy
A value which is initialized on the first access. See lazy::Lazy for documentation.
Mutex
A primitive that synchronizes the execution of multiple threads. See mutex::Mutex for documentation.
Once
A primitive that provides lazy one-time initialization. See once::Once for documentation.
RwLock
A lock that provides data access to either one writer or many readers. See rwlock::RwLock for documentation.
RwLockUpgradableGuard
A guard that provides immutable data access but can be upgraded to RwLockWriteGuard. See rwlock::RwLockUpgradableGuard for documentation.
RwLockWriteGuard
A guard that provides mutable data access. See rwlock::RwLockWriteGuard for documentation.