Eu tenho que usar atomic <bool> para a variável bool "exit"?
Eu preciso definir um sinalizador para outro segmento para sair. Esse outro segmento verifica o sinalizador de saída de tempos em tempos. Eu tenho que usar atomic para a bandeira ou apenas um bool simples é suficiente e por que (com um exemplo do que exatamente pode dar errado se eu usar bool simples)?
#include <future>
bool exit = false;
void thread_fn()
{
while(!exit)
{
//do stuff
if(exit) break;
//do stuff
}
}
int main()
{
auto f = std::async(std::launch::async, thread_fn);
//do stuff
exit = true;
f.get();
}