函数
GLibatomic_pointer_compare_and_exchange_full
自:2.74
声明 [src]
gboolean
g_atomic_pointer_compare_and_exchange_full (
void* atomic,
gpointer oldval,
gpointer newval,
void* preval
)
描述 [src]
将 atomic
与 oldval
比较,如果相等,则将其设置为 newval
。如果 atomic
不等于 oldval
,则不进行更改。无论如何,此操作之前 atomic
的值都会存储在 preval
中。
这种比较和交换是原子执行的。
可以将此操作视为 { *preval = *atomic; if (*atomic == oldval) { *atomic = newval; return TRUE; } else return FALSE; }
的原子版本。
此调用用作完整的编译器和硬件内存屏障。
请参阅 g_atomic_pointer_compare_and_exchange()。
自 2.74 起提供