c++ async blocking call
Destruction order vs thread safety in C++