$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] [format] Thread safety of boost::format
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2009-06-26 16:44:04
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