功能
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 起可用