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 Definitions
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.