[c++-pthreads] Initialization of local static mutex
Jean-Marc Bourguet
jm.bourguet at gmail.com
Tue Oct 10 06:05:16 UTC 2006
Mark Mitchell wrote:
> Roland Schwarz wrote:
>> Now that you have brought up this issue I am curious which "other
>> issues" you are refering to.
>
> void f() {
> static int i = g();
> }
>
> Here, you cannot do the initialization statically; it must be done the
> first time that f() is called. So, the key question is whether the
> initialization is thread-safe. Does the programmer have to change that
> initialization to be thread-safe, using locks in f()? Or does the
> compiler take care of it?
I fail to see how the programmer can make the initialization thread-safe
if the compiler doesn't take care of it? Lack of memory barriers could
make the bool indicating that the initialization is done visible, but
not the written value.
--
Jean-Marc
More information about the c++-pthreads
mailing list