atomicIntExchange

fnint atomicIntExchange(ref int atomic, int newval)

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

atomica pointer to a #gint or #guint
newvalthe value to replace with

Returns

the value of atomic before the exchange, signed