sig_atomic_t和std::atomic<>可以互换吗?

Are sig_atomic_t and std::atomic<> interchangable?

本文关键字:atomic 互换 gt sig lt std      更新时间:2023-10-16

按标题。我可以在信号处理程序中使用std::atomic<>sig_atomic_t提供其他编译器功能吗?

n3376 1.9/6

当抽象机的处理被接收到一个信号而中断时,对象的值既不是

-类型volatile std::sig_atomic_t nor

-无锁原子对象

是在信号处理程序执行期间未指定的,并且不属于

锁定29.4/1,2

ATOMIC_……_LOCK_FREE宏表示相应原子类型的无锁属性有符号和无符号变体组合在一起。这些属性也适用于相应的(部分)原子模板的专门化。值为0表示该类型永远不会无锁。的值1表示这些类型有时是无锁的。如果值为2,则表示该类型总是无锁的。

函数atomic_is_lock_free(29.6)表示对象是否无锁。在任何给定的程序中