[ Version ( since = "2.30" ) ]
[ CCode ( cname = "g_atomic_int_add" ) ]
public uint add (ref uint atomic, uint val)
Atomically adds val
to the value of atomic
.
Think of this operation as an atomic version of `{ tmp = *atomic; *atomic += val; return tmp; }`.
This call acts as a full compiler and hardware memory barrier.
Before version 2.30, this function did not return a value (but exchange_and_add did, and had the same meaning).
While atomic
has a `volatile` qualifier, this is a historical artifact and the pointer passed to it should not be
`volatile`.
atomic | |
val |
the value to add |
the value of |