Module shuttle::sync

source ·
Expand description

Shuttle’s implementation of std::sync.

Modules§

  • Atomic types
  • Multi-producer, single-consumer FIFO queue communication primitives.

Structs§

  • A thread-safe reference-counting pointer. ‘Arc’ stands for ‘Atomically Reference Counted’.
  • A barrier enables multiple threads to synchronize the beginning of some computation.
  • A BarrierWaitResult is returned by Barrier::wait() when all threads in the Barrier have rendezvoused.
  • A Condvar represents the ability to block a thread such that it consumes no CPU time while waiting for an event to occur.
  • A mutex, the same as std::sync::Mutex.
  • A mutex guard, the same as std::sync::MutexGuard.
  • A synchronization primitive which can be used to run a one-time global initialization. Useful for one-time initialization for FFI or related functionality. This type can only be constructed with Once::new().
  • State yielded to Once::call_once_force()’s closure parameter. The state can be used to query the poison status of the Once.
  • A reader-writer lock, the same as std::sync::RwLock.
  • RAII structure used to release the shared read access of a RwLock when dropped.
  • RAII structure used to release the exclusive write access of a RwLock when dropped.
  • A type indicating whether a timed wait on a condition variable returned due to a time out or not.
  • Weak is a version of Arc that holds a non-owning reference to the managed allocation. The allocation is accessed by calling upgrade on the Weak pointer, which returns an Option<Arc<T>>.