Crate otter_nodejs_tests::lazy_init
[−]Expand description
A crate for things that are
- Lazily initialized
- Expensive to create
- Immutable after creation
- Used on multiple threads
Lazy<T> is better than Mutex<Option<T>> because after creation accessing
T does not require any locking, just a single boolean load with
Ordering::Acquire (which on x86 is just a compiler barrier, not an actual
memory barrier).
Structs
Lazy<T> is a lazily initialized synchronized holder type. You can think
of it as a LazyTransform where the initial type doesn’t exist.
LazyTransform<T, U> is a synchronized holder type, that holds a value of
type T until it is lazily converted into a value of type U.