小编Sni*_*ang的帖子

为什么 C/C++ 没有原子标志 test_and_clear?

  • atomic_flag_test_and_set 是的!
  • atomic_flag_clear 是的!
  • atomic_flag_test_and_clear 没有
  • atomic_flag_set 没有

如果您想在某些上下文中对事件设置标志,并在其他上下文中检查并清除事件,C/C++ 不允许您在每个上下文中执行单个原子调用。

您必须反转标志,因此清除事件上的标志,在检查事件时检查并设置标志。

没什么大不了的,但在这种情况下似乎是倒退的,特别是考虑到标志的默认状态为 false,这在相反的意义上意味着默认情况下会断言事件。

我想,也可以使用原子boolwith来代替。atomic_exchange

c++ atomic test-and-set c11 stdatomic

6
推荐指数
2
解决办法
169
查看次数

标签 统计

atomic ×1

c++ ×1

c11 ×1

stdatomic ×1

test-and-set ×1