#include <thread>
#include <atomic>
#include <chrono>
#include <iostream>
static struct X
{
X(): thd([this]
{
while ( ! stop.load() )
std::this_thread::sleep_for(std::chrono::milliseconds(200));
})
{
}
~X()
{
stop.store(true);
thd.join();
std::cout << "Exited\n";
}
std::atomic_bool stop;
std::thread thd;
} x;
int main()
{
std::cout << "Exiting\n";
return 0;
}
I2luY2x1ZGUgPHRocmVhZD4KI2luY2x1ZGUgPGF0b21pYz4KI2luY2x1ZGUgPGNocm9ubz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RhdGljIHN0cnVjdCBYCnsKICAgIFgoKTogdGhkKFt0aGlzXQogICAgICAgIHsKICAgICAgICAgICAgd2hpbGUgKCAhIHN0b3AubG9hZCgpICkKICAgICAgICAgICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIwMCkpOwogICAgICAgIH0pCiAgICB7CiAgICB9CgogICAgflgoKQogICAgewogICAgICAgIHN0b3Auc3RvcmUodHJ1ZSk7CiAgICAgICAgdGhkLmpvaW4oKTsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkV4aXRlZFxuIjsKICAgIH0KICAgIAogICAgc3RkOjphdG9taWNfYm9vbCBzdG9wOwogICAgc3RkOjp0aHJlYWQgdGhkOwp9IHg7CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6Y291dCA8PCAiRXhpdGluZ1xuIjsKICAgIHJldHVybiAwOwp9