Expand description

Atomic abstractions and thread-safe appendable list with lock-free iterators

Features

Atomic abstractions

With Atomic and AtomicOption it’s not safe to get a reference, you must replace the value to access it

To safely get a reference to T you must use FillOnceAtomicOption and accept the API limitations

A safe AtomicArc is impossible without a GC, so you must use ArcCell from crossbeam (locks to clone) or FillOnceAtomicArc

Thread-safe appendable list that can create a lock-free iterator

Api of VS Iterator

Modules

Voluntary Servitude Foreign Function Interface (FFI)

Macros

Creates new VS with specified elements as in the vec! macro
Alias for voluntary_servitude macro

Structs

Atomic abstractions of a Box<T>
Atomic abstraction of a Option<Box<T>>
Atomic abstractions of a Option<Arc<T>> that can provide access to a cloned Option<Arc<T>> and a Option<&T>
Atomic abstraction of a Option<Box<T>> that can provide access to a Option<&T>
Lock-free iterator based on VS
Happens when you call try_store in a already filled AtomicOption/FillOnceAtomicOption
Appendable list with lock-free iterator (also called VS)

Statics

GLOBAL_ALLOCsystem-alloc
Represents the use of the system’s allocator instead of rust’s default

Functions

Setup logger according to RUST_LOG env var

Type Definitions