函数
GLibatomic_pointer_compare_and_exchange
自:2.4
声明 [src]
gboolean
g_atomic_pointer_compare_and_exchange (
void* atomic,
gpointer oldval,
gpointer newval
)
说明 [src]
比较 atomic
是否与 oldval
相等,如果相等,则将其设置为 newval
。如果 atomic
与 oldval
不相等,则不进行任何更改。
此比较和交换是原子性完成的。
将此操作视为 { if (*atomic == oldval) { *atomic = newval; return TRUE; } else return FALSE; }
的原子版本。
此调用作为完整的编译器和硬件内存屏障。
虽然 atomic
具有 volatile
限定符,但这只是一个历史遗留,传递给它的指针不应为 volatile
。
自 2.4 起可用