GLib.pointer_bit_unlock_and_set (original) (raw)
Function
GLibpointer_bit_unlock_and_set
since: 2.80
Declaration [src]
void
g_pointer_bit_unlock_and_set (
void* address,
guint lock_bit,
gpointer ptr,
guintptr preserve_mask
)
Description [src]
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, ptr
must have lock_bit
unset. This also means, you usually can only use this on the lowest bits.
Available since: 2.80
Parameters
address
Type: void*
A pointer to a #gpointer-sized value.
The data is owned by the caller of the function.
lock_bit
Type: guint
A bit value between 0 and 31.
ptr
Type: gpointer
The new pointer value to set.
The argument can be NULL. |
---|
The data is owned by the caller of the function. |
preserve_mask
Type: guintptr
If non-zero, those bits of the current pointer in address
are preserved. Note that the lock_bit
bit will be always unset regardless ofptr
, preserve_mask
and the currently set value in address
.