Initialization of static locals is not threadsafe prior to C++11, according to the standard. It definitely is not threadsafe with Microsoft compilers, except with VC++ 2012 if C++11 mode is enabled. It is threadsafe with GCC on most platforms, though.

In contrast, initialization of non-local statics is threadsafe with most compilers, including VC++.