Muss ich atomic <bool> für die Bool-Variable "exit" verwenden?
Ich muss ein Flag setzen, damit ein anderer Thread beendet wird. Dieser andere Thread überprüft von Zeit zu Zeit das Exit-Flag. Muss ich atomic für das Flag verwenden oder reicht nur ein einfacher Bool und warum (mit einem Beispiel, was genau schief gehen kann, wenn ich einfachen Bool verwende)?
#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();
}