On Tuesday, 7 May 2013 at 06:50:16 UTC, Mehrdad wrote:
As far as I can see, there shouldn't be a need for any other
handshake in this example.
As long as the object is fully initialized before _static is
written to (easy enough with just a memory barrier), there is
no penalty for subsequent reads whatsoever.
Right?
The issue is that the write to _static might never appear on the
other threads, thus leading to multiple instances being created -
even though it is atomic in the sense that you never end up
reading a pointer with e.g. only half of the bytes updated.
David