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