Uso inadequado de sig_atomic_t volátil
De acordo comest site, pode-se usar variáveis do tipovolatile sig_atomic_t
dentro de um manipulador de sinal. Agora, minha pergunta é: por exemplo, algo como o código a seguir ainda seria atômico e, portanto, não apresentaria condições de corrida?
Suponha que estamos usando um processador multicore EDITA: executando um programa multithread). Fazvolatile sig_atomic_t
trabalhe para sistemas multicore em primeiro lugar ou devemos usar oatomic<unsigned int>
do C ++ 11 para manipuladores de sinal em um sistema multicore EDITA: executando um programa multithread)?
volatile sig_atomic_t a;
static void signal_handler(int sig, siginfo_t *si, void *unused)
{
int b;
................
b = ...;
,a = a | b;
................
}