函数

GLibpointer_bit_unlock_and_set

since: 2.80

声明 [src]

void
g_pointer_bit_unlock_and_set (
  void* address,
  guint lock_bit,
  gpointer ptr,
  guintptr preserve_mask
)

说明 [src]

这相当于 g_pointer_bit_unlock() 和 atomically 设置指针值。

请注意,锁定位将从指针中清除。如果设置的已解锁指针不与 ptr 相同,则断言失败。换句话说,ptr 必须取消设置 lock_bit。这也意味着,通常您只能在最低位上使用它。

从 2.80 开始提供:

参数

地址

类型:void*

指向 #gpointer 大小值的一个指针。

数据归函数的调用者所有。
锁定位

类型:guint

介于 0 和 31 之间的一个位值。

ptr

类型:gpointer

要设置的新指针值。

该参数可以是 NULL
数据归函数的调用者所有。
保留掩码

类型:guintptr

如果非零,则将 address 中当前指针的这些位保留下来。请注意,无论 preserve_maskaddress 中当前设置的值如何,lock_bit 位将始终根据 set 进行设置。