Function
GLibatomic_int_compare_and_exchange
since: 2.4
Declaration [src]
gboolean
g_atomic_int_compare_and_exchange (
volatile gint* atomic,
gint oldval,
gint newval
)
Description [src]
Compares atomic to oldval and, if equal, sets it to newval.
If atomic was not equal to oldval then no change occurs.
This compare and exchange is done atomically.
Think of this operation as an atomic version of
{ if (*atomic == oldval) { *atomic = newval; return TRUE; } else return FALSE; }.
This call acts as a full compiler and hardware memory barrier.
While atomic has a volatile qualifier, this is a historical artifact and
the pointer passed to it should not be volatile.
Available since: 2.4