函数

GLibatomic_pointer_or

自 2.30 起

声明 [src]

guintptr
g_atomic_pointer_or (
  void* atomic,
  gsize val
)

说明 [src]

atomicval 的值执行原子位或运算,将结果存储回 atomic

将此操作视为 { tmp = *atomic; *atomic |= val; return tmp; } 的原子版本。

此调用充当一个完整的编译器和硬件内存屏障。

虽然 atomic 有一个 volatile 限定符,但这是一个历史遗留问题,传递给它的指针不应该是 volatile

在 GLib 2.80 中,返回值类型从 #gsize 更改为 #guintptr,以增加对 128 位指针平台的支持。这应该不会影响现有代码。

自 2.30 起提供

参数

atomic

类型: void*

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

数据归函数调用者所有。
val

类型: gsize

要“或”的值。

返回值

类型: guintptr

atomic 的值在运算之前,为无符号数。