Правильное использование volatile sig_atomic_t

Согласно сэто сайт, можно использовать переменные типаvolatile sig_atomic_t внутри обработчика сигнала. Теперь мой вопрос: будет ли, например, что-то вроде следующего кода все еще атомарным и, таким образом, не вводить условия гонки?

Предположим, что мы используем многоядерный процессор (РЕДАКТИРОВАТЬ: запуск многопоточной программы). Есть лиvolatile sig_atomic_t даже работать для многоядерных систем в первую очередь или мы должны использоватьatomic<unsigned int> C ++ 11 для обработчиков сигналов в многоядерной системе (РЕДАКТИРОВАТЬ: запуск многопоточной программы)?

volatile sig_atomic_t a;

static void signal_handler(int sig, siginfo_t *si, void *unused)
{
  int b;
  ................
  b = ...;
  ,a = a | b;
  ................
}

Ответы на вопрос(1)

Ваш ответ на вопрос