a pointer to a gpointer-sized value
a bit value between 0 and 31
the new pointer value to set
if non-zero, those bits of the current pointer in address are preserved. Note that the lock_bit bit will be always unset regardless of ptr, preserve_mask and the currently set value in address.
This is equivalent to
g_pointer_bit_unlock()and atomically setting the pointer value.Note that the lock bit will be cleared from the pointer. If the unlocked pointer that was set is not identical to
ptr, an assertion fails. In other words,ptrmust havelock_bitunset. This also means, you usually can only use this on the lowest bits.