Low-Lock Singletons In D

Mehrdad wfunction at hotmail.com
Tue May 7 14:57:18 PDT 2013


On Tuesday, 7 May 2013 at 19:49:30 UTC, Andrei Alexandrescu wrote:
> A memory barrier is not a one-way thing, i.e. not only the 
> writer must do it. Any operation on shared memory is a 
> handshake between the writer and the reader. If the reader 
> doesn't do its bit, it can see the writes out of order no 
> matter what the writer does.
>
> Andrei



Andrew, I still don't understand:

The writer is ensuring that writes to memory are happening 
_after_ the object is initialized and _before_ the reference to 
the old object is modified, via a memory barrier.


Unless you're claiming that a memory barrier _doesn't_ do what 
it's supposed to (i.e., the memory module is executing writes 
out-of-order even though the processor is issuing them in the 
correct order), there is no way for _anyone_ to see a partially 
initialized object anywhere...


More information about the Digitalmars-d mailing list