【问题标题】:Is there any atomic set operation that returns the old value in C?是否有任何原子集合操作返回 C 中的旧值?
【发布时间】:2018-05-14 06:07:47
【问题描述】:

我正在寻找一些类似atomic_set 的函数,它以原子方式设置变量的值,同时它返回类似于compare_and_swap 的先前值。

这是我的期望:

int old_val = atomic_set(mem_address, 10);

【问题讨论】:

    标签: c atomic


    【解决方案1】:

    C11 <stdatomic.h> 定义了执行此操作的atomic_exchange()atomic_exchange_explicit()

    atomic_exchange_explicit() 表单允许您指定所需的内存排序(普通的atomic_exchange() 使用最强的内存排序memory_order_seq_cst)。

    【讨论】:

    • 不知道有没有这样的东西。谢谢 +1 :-)
    猜你喜欢
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 2015-01-10
    • 2020-08-19
    相关资源
    最近更新 更多