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