Double checked lock singleton in C++11