
AMDG James Madison wrote:
I was browsing the boost::format docs and did not find anything about the Thread safety of boost::format. Essentially I want to craft a bunch of error handling methods like this:
void ProcessError(...args...) { static boost::format formatter(...); //Try to save the cost of creating this for every single error
//do stuff
LOG(boost::str(formatter % ...args...); }
This method would be called from many, many threads. Is this considered safe? Is there some general information about the thread safety of boost::format methods somewhere in the docs?
It is not safe. Look at the declaration of operator% template<class T> basic_format& operator%(const T& x) This operation modifies the format object and is therefore intrinsically not thread-safe. In Christ, Steven Watanabe