函数
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 起提供