View source code
Display the source code in core/atomic.d from which this page was generated on
github.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Page wiki
View or edit the community-maintained wiki page associated with this page.
Module core.atomic
The atomic module provides basic support for lock-free concurrent programming.
Functions
Name | Description |
---|---|
atomicFence
|
Inserts a full load/store memory fence (on platforms that need it). This ensures that all loads and stores before a call to this function are executed before any loads and stores after the call. |
atomicLoad
|
Loads 'val ' from memory and returns it. The memory barrier specified
by 'ms' is applied to the operation, which is fully sequenced by
default. Valid memory orders are MemoryOrder.raw , MemoryOrder.acq ,
and MemoryOrder.seq .
|
atomicOp
|
Performs the binary operation 'op' on val using 'mod ' as the modifier.
|
atomicStore
|
Writes 'newval ' into 'val '. The memory barrier specified by 'ms' is
applied to the operation, which is fully sequenced by default.
Valid memory orders are MemoryOrder.raw , MemoryOrder.rel , and
MemoryOrder.seq .
|
cas
|
Stores 'writeThis ' to the memory referenced by 'here ' if the value
referenced by 'here ' is equal to 'ifThis '. This operation is both
lock-free and atomic.
|
Enums
Name | Description |
---|---|
MemoryOrder
|
Specifies the memory ordering semantics of an atomic operation. |
Authors
Sean Kelly, Alex Rønne Petersen