the function Poco::format(...) is defined in Foundation/src/Format.cpp, and it calls formatOne() from the same file. In turn, formatOne() calls std::locale::classic() , when the Poco libraries are compiled without defining POCO_NO_LOCALE . Calling later Poco::format () from different threads leads to not synchronized access to std::locale from that threads.
The documentation of Poco::format () at http://pocoproject.org/docs/Poco.html does not mention these details. Please amend the later to indicate, that when the libraries are compiled without #define POCO_NO_LOCALE, the function Poco::format() is not thread-safe.