atomicIntXor

fnuint atomicIntXor(ref uint atomic, uint val)

Performs an atomic bitwise 'xor' of the value of atomic and val, storing the result back in 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.

While atomic has a volatile qualifier, this is a historical artifact and the pointer passed to it should not be volatile.

Parameters

atomica pointer to a #gint or #guint
valthe value to 'xor'

Returns

the value of atomic before the operation, unsigned