Module rustc_data_structures::sync
source · Expand description
This module defines types which are thread safe if cfg!(parallel_compiler) is true.
Lrc
is an alias of Arc
if cfg!(parallel_compiler) is true, Rc
otherwise.
Lock
is a mutex.
It internally uses parking_lot::Mutex
if cfg!(parallel_compiler) is true,
RefCell
otherwise.
RwLock
is a read-write lock.
It internally uses parking_lot::RwLock
if cfg!(parallel_compiler) is true,
RefCell
otherwise.
MTLock
is a mutex which disappears if cfg!(parallel_compiler) is false.
MTRef
is an immutable reference if cfg!(parallel_compiler), and a mutable reference otherwise.
rustc_erase_owner!
erases an OwningRef owner into Erased or Erased + Send + Sync
depending on the value of cfg!(parallel_compiler).
Re-exports
pub use std::sync::atomic::Ordering::SeqCst;
Structs
This is a single threaded variant of
AtomicU64
, AtomicUsize
, etc.
It has explicit ordering arguments and is only intended for use with
the native atomic types.
You should use this type through the AtomicU64
, AtomicUsize
, etc, type aliases
as it’s not intended to be used separately.OnceCellExperimental
A cell which can be written to only once.
A type which only allows its inner value to be used in one thread.
It will panic if it is used on multiple threads.
A wrapper type for a mutably borrowed value from a
RefCell<T>
.A single-threaded reference-counting pointer. ‘Rc’ stands for ‘Reference
Counted’.
A wrapper type for a mutably borrowed value from a
RefCell<T>
.Wraps a borrowed reference to a value in a
RefCell
box.
A wrapper type for an immutably borrowed value from a RefCell<T>
.A wrapper type for a mutably borrowed value from a
RefCell<T>
.Wraps a borrowed reference to a value in a
RefCell
box.
A wrapper type for an immutably borrowed value from a RefCell<T>
.A wrapper type for a mutably borrowed value from a
RefCell<T>
.Enums
Atomic memory orderings