Function
GLibpointer_bit_unlock_and_set
since: 2.80
Declaration [src]
void
g_pointer_bit_unlock_and_set(
void*address,
guintlock_bit,
gpointerptr,
guintptrpreserve_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 beNULL
.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 thelock_bit
bit will be always unset regardless ofptr
,preserve_mask
and the currently set value inaddress
.