Module sync

Source
Expand description

Provides various synchronization alternatives to language primitives.

Currently missing from this module are the following items:

  • Condvar
  • WaitTimeoutResult
  • mpsc

Otherwise, this is a drop-in replacement for std::sync.

Modules§

atomic
Provides various atomic alternatives to language primitives.

Structs§

Arc
A thread-safe reference-counting pointer. ‘Arc’ stands for ‘Atomically Reference Counted’.
Barrier
A barrier enables multiple threads to synchronize the beginning of some computation.
BarrierWaitResult
A BarrierWaitResult is returned by Barrier::wait() when all threads in the Barrier have rendezvoused.
LazyLock
A value which is initialized on the first access.
Mutex
A mutual exclusion primitive useful for protecting shared data
MutexGuard
An RAII implementation of a “scoped lock” of a mutex. When this structure is dropped (falls out of scope), the lock will be unlocked.
Once
A low-level synchronization primitive for one-time global execution.
OnceLock
A synchronization primitive which can nominally be written to only once.
OnceState
State yielded to Once::call_once_force()’s closure parameter. The state can be used to query the poison status of the Once.
PoisonError
A type of error which can be returned whenever a lock is acquired.
RwLock
A reader-writer lock
RwLockReadGuard
RAII structure used to release the shared read access of a lock when dropped.
RwLockWriteGuard
RAII structure used to release the exclusive write access of a lock when dropped.
Weak
Weak is a version of Arc that holds a non-owning reference to the managed allocation.

Enums§

TryLockError
An enumeration of possible errors associated with a TryLockResult which can occur while trying to acquire a lock, from the try_lock method on a Mutex or the try_read and try_write methods on an RwLock.

Type Aliases§

LockResult
A type alias for the result of a lock method which can be poisoned.
TryLockResult
A type alias for the result of a nonblocking locking method.