根据这个网站,我们可以在信号处理程序中使用
假设我们正在使用多核处理器(编辑:运行多线程程序)。在多核系统中,
volatile sig_atomic_t
类型的变量。现在我的问题是,类似以下代码的实现是否仍然是原子的,从而不会引入竞争条件?假设我们正在使用多核处理器(编辑:运行多线程程序)。在多核系统中,
volatile sig_atomic_t
是否有效,或者应该在多核系统(编辑:运行多线程程序)中的信号处理程序中使用C++11的atomic<unsigned int>
?volatile sig_atomic_t a;
static void signal_handler(int sig, siginfo_t *si, void *unused)
{
int b;
................
b = ...;
a = a | b;
................
}