Module sync

Source
Available on crate feature sync only.
Expand description

Future-aware synchronization

This module is enabled with the sync feature flag.

Tasks sometimes need to communicate with each other. This module contains basic abstractions for doing so:

  • oneshot, a way of sending a single value from one task to another.
  • mpsc, a multi-producer, single-consumer channel for sending values between tasks.
  • Mutex, an asynchronous Mutex-like type.
  • watch, a single-producer, multi-consumer channel that only stores the most recently sent value.

Modules§

broadcast
A multi-producer, multi-consumer broadcast queue. Each sent value is seen by all consumers.
mpsc
A multi-producer, single-consumer queue for sending values across asynchronous tasks.
oneshot
A channel for sending a single message between asynchronous tasks.
watch
A single-producer, multi-consumer channel that only retains the last sent value.

Structs§

Barrier
A barrier enables multiple threads to synchronize the beginning of some computation.
BarrierWaitResult
A BarrierWaitResult is returned by wait when all threads in the Barrier have rendezvoused.
Mutex
An asynchronous mutual exclusion primitive useful for protecting shared data
MutexGuard
A handle to a held Mutex.
RwLock
An asynchronous 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.
Semaphore
Counting semaphore performing asynchronous permit aquisition.
SemaphorePermit
A permit from the semaphore