功能
GLibatomic_int_compare_and_exchange_full
since: 2.74
声明 [src]
gboolean
g_atomic_int_compare_and_exchange_full (
gint* atomic,
gint oldval,
gint newval,
gint* preval
)
描述 [src]
将 atomic
与 oldval
进行比较,如果相等,则将其设置为 newval
。如果 atomic
不等于 oldval
,那么不会发生变化。在任何情况下,此操作之前 atomic
的值都存储在 preval
中。
此比较和交换是原子操作。
可以将此操作看作是 { *preval = *atomic; if (*atomic == oldval) { *atomic = newval; return TRUE; } else return FALSE; }
的原子版本。
此调用充当完全的编译器和硬件内存屏障。
另请参阅 g_atomic_int_compare_and_exchange()。
自 2.74 起可用