tern.atomic

Reimplementation of core.atomic with better data support.

Members

Classes

SpinLock
class SpinLock

Spinlock implementation backed by Condition.

Static functions

atomicExchange
void atomicExchange(R rhs, L lhs)

Atomically exchanges rhs and lhs.

atomicLoad
auto atomicLoad(R rhs)

Atomically loads the value of rhs.

atomicLoadElem
auto atomicLoadElem(R rhs)

Atomically loads an array element in the value of rhs.

atomicLoadElem
auto atomicLoadElem(R rhs)

Atomically loads a field element in the value of rhs.

atomicLoadElem
auto atomicLoadElem(R rhs, L lhs)

Atomically stores the array element lhs in an array element of rhs.

atomicLoadElem
auto atomicLoadElem(R rhs, L lhs)

Atomically stores the field element lhs in a field element of rhs.

atomicOp
auto atomicOp(R rhs, L lhs)

Performs an atomic operation op on rhs and lhs.

atomicStore
void atomicStore(R rhs, L lhs)

Atomically stores lhs in rhs.

fence
void fence()

Inserts a load/store memory fence, ensuring that all loads and stores before this call happen before any loads and stores after.

Meta