atomic_flag_test_and_set
Sim!atomic_flag_clear
Sim!atomic_flag_test_and_clear
nãoatomic_flag_set
não
Se você quiser fazer algo como definir um sinalizador em um evento em algum contexto e, em algum outro contexto, verificar e limpar o evento, o C/C++ não permite que você faça uma única chamada atômica por contexto.
Você teria que inverter o sinalizador, então limpe o sinalizador do evento, verifique e defina o sinalizador ao verificar o evento.
Não é grande coisa, mas parece um retrocesso neste cenário, especialmente considerando que o estado padrão da bandeira é falso, o que no sentido invertido significa que o evento é declarado por padrão.
Suponho que, alternativamente, um atômico bool
with atomic_exchange
poderia ser usado.