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.
a pointer to a #gint or #guint
the value to replace with
the value of atomic before the exchange, signed
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.