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.
Function core.atomic.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.
Prototypes
bool cas(T, V1, V2)( shared(T)* here, V1 ifThis, V2 writeThis ) pure nothrow @nogc if (!is(T == class) && !is(T U : U*) && __traits(compiles, () { *here = writeThis; } )); bool cas(T, V1, V2)( shared(T)* here, shared(V1) ifThis, shared(V2) writeThis ) pure nothrow @nogc if (is(T == class) && __traits(compiles, () { *here = writeThis; } )); bool cas(T, V1, V2)( shared(T)* here, shared(V1)* ifThis, shared(V2)* writeThis ) pure nothrow @nogc if (is(T U : U*) && __traits(compiles, () { *here = writeThis; } ));
Parameters
Name | Description |
---|---|
here | The address of the destination variable. |
writeThis | The value to store. |
ifThis | The comparison value. |
Returns
true if the store occurred, false if not.
Authors
Sean Kelly, Alex Rønne Petersen