Module swc_common::sync

source ·
Expand description

This module defines types which are thread safe if cfg!(feature = "concurrent") is true.

Lrc is an alias of either Rc or Arc.

Lock is a mutex. It internally uses parking_lot::Mutex if cfg!(parallel_queries) is true, RefCell otherwise.

RwLock is a read-write lock. It internally uses parking_lot::RwLock if cfg!(parallel_queries) is true, RefCell otherwise.

LockCell is a thread safe version of Cell, with set and get operations. It can never deadlock. It uses Cell when cfg!(parallel_queries) is false, otherwise it is a Lock.

MTLock is a mutex which disappears if cfg!(parallel_queries) is false.

MTRef is a immutable reference if cfg!(parallel_queries), and an mutable reference otherwise.

rustc_erase_owner! erases a OwningRef owner into Erased or Erased + Send + Sync depending on the value of cfg!(parallel_queries).

Structs§

  • A value which is initialized on the first access.
  • A thread-safe reference-counting pointer. ‘Arc’ stands for ‘Atomically Reference Counted’.
  • A thread-safe cell which can be written to only once.

Traits§

  • Types that can be transferred across thread boundaries.
  • Types for which it is safe to share references between threads.

Type Aliases§

  • An RAII implementation of a “scoped lock” of a mutex. When this structure is dropped (falls out of scope), the lock will be unlocked.
  • An RAII mutex guard returned by MutexGuard::map, which can point to a subfield of the protected data.
  • An RAII read lock guard returned by RwLockReadGuard::map, which can point to a subfield of the protected data.
  • An RAII write lock guard returned by RwLockWriteGuard::map, which can point to a subfield of the protected data.
  • RAII structure used to release the shared read access of a lock when dropped.
  • RAII structure used to release the exclusive write access of a lock when dropped.