被sig_atomic_t和std ::原子<>互换?(Are sig_atomic_t

2019-08-21 20:08发布

按标题。 可否使用std::atomic<>中的信号处理程序或者根本sig_atomic_t提供其它编译器功能?

Answer 1:

n3376 1.9 / 6

当抽象机的处理是由接收到的信号的中断,对象的值既不是

- 类挥发性的std ::的也不sig_atomic_t

- 无锁原子对象(29.4)

是信号处理程序的执行,并且任何对象不在任一由所述处理程序修改变得不确定这两个类别的值时指定。

无锁29.4 / 1,2

原子_..._ LOCK_FREE宏表示相应原子类型的无锁特性,用符号和无符号的变体组合在一起。 性质也适用于原子模板的相应的(局部的)特化。 值为0表示该类型是从来没有无锁的。 值1表示该类型有时无锁。 的2值表示的类型总是无锁。

功能atomic_is_lock_free(29.6)指示对象是否是无锁。 在任何给定的程序执行,无锁查询的结果应为相同类型的所有指针是一致的。



文章来源: Are sig_atomic_t and std::atomic<> interchangable?