函数
GLibatomic_int_compare_and_exchange
版本:2.4 起
声明 [源代码]
gboolean
g_atomic_int_compare_and_exchange (
volatile gint* atomic,
gint oldval,
gint newval
)
描述 [源代码]
将 atomic
与 oldval
进行比较,如果相等,则将 atomic
设为 newval
。如果 atomic
不等于 oldval
,则不会发生任何更改。
此比较和交换是原子操作。
将其视为 { if (*atomic == oldval) { *atomic = newval; return TRUE; } else return FALSE; }
的原子版本。
此调用作为一个完整的编译器和硬件内存屏障。
尽管 atomic
具有 volatile
限定符,但这是一种历史遗留,传入此 atomic
的指针不应是 volatile
类型。
自 2.4 起可用