按标题。我可以在信号处理程序中使用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)表示对象是否无锁。在任何给定的程序中