atomicPointerExchange
fn
void * atomicPointerExchange(void * atomic = null, void * newval = null)Sets the atomic to newval and returns the old value from atomic.
This exchange is done atomically.
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.
Parameters
atomic | a pointer to a #gpointer-sized value |
newval | the value to replace with |
Returns
the value of atomic before the exchange