Мне нужно установить флаг для выхода другого потока. Этот другой поток проверяет флаг выхода время от времени. Должен ли я использовать атомный для флага, или достаточно простого bool и почему (с примером того, что может пойти не так, если я использую простой bool)?
#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();
}