Double Checked Locking
    deadalnix 
    deadalnix at gmail.com
       
    Tue Dec 27 04:16:02 PST 2011
    
    
  
Le 17/12/2011 08:47, Andrew Wiley a écrit :
> I was looking through Jonathan Davis's pull request to remove static
> constructors from std.datetime, and I realized that I don't know
> whether Double Checked Locking is legal under D's memory model, and
> what the requirements for it to work would be.
> (if you're not familiar with the term, check out
> http://en.wikipedia.org/wiki/Double-checked_locking - it's a useful
> but problematic programming pattern that can cause subtle concurrency
> bugs)
> It seems like it should be legal as long as the variable tested and
> initialized is flagged as shared so that the compiler enforces proper
> fences, but is this actually true?
Well according to the spec, it should work with the garantee given by 
shared.
But in real life, the compiler is unable to ensure that. This is 
compiler issue.
    
    
More information about the Digitalmars-d
mailing list