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