Boost logo

Boost :

Subject: Re: [boost] [thread] Can Boost.Thread use Boost.Atomic without falling on a compatibility issue?
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2013-01-13 12:12:35


Le 13/01/13 16:16, Andrey Semashev a écrit :
>
> once_flag must always be statically initialized, that's the key feature that
> allows call_once to be thread-safe. In C++03 this can only be guaranteed for
> POD types. C++11 also includes constant initialization into static
> initialization (i.e. when objects are initialized with constexpr
> constructors). All other objects are initialized during dynamic
> initialization, which is not thread-safe.
>
Thanks for clarifications, I understand your concern. The non-POD
once_flag implementation can not be used for static once_flag instances
in a thread safe mode.
Just for curiosity, from where comes the restriction that once_flag must
always be statically initialized? Could you point me to the standard?

Best,
Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk