我正在寻找一些类似atomic_set
的函数,该函数以原子方式设置变量的值,同时返回类似于compare_and_swap
的先前值。
这是我的期望:
int old_val = atomic_set(mem_address, 10);
C11<stdatomic.h>
定义了执行此操作atomic_exchange()
和atomic_exchange_explicit()
。
atomic_exchange_explicit()
形式允许您指定所需的内存排序(普通atomic_exchange()
使用最强的内存排序memory_order_seq_cst
(。