Something needs to happen with shared, and soon.

Jonathan M Davis jmdavisProg at gmx.com
Tue Nov 13 23:56:13 PST 2012


On Tuesday, November 13, 2012 14:22:07 Walter Bright wrote:
> I'm just not convinced that having the compiler add memory barriers:
> 
> 1. will result in correctly working code, when done by programmers who have
> only an incomplete understanding of memory barriers, which would be about
> 99.9% of us.
> 
> 2. will result in efficient code

Being able to have double-checked locking work would be valuable, and having 
memory barriers would reduce race condition weirdness when locks aren't used 
properly, so I think that it would be desirable to have memory barriers. If 
there's a major performance penalty though, that might be a reason not to do 
it. Certainly, I don't think that there's any question that adding memory 
barriers won't make it so that you don't need mutexes or synchronized blocks 
or whatnot. shared's primary benefit is in logically separating normal code 
from code that must shared data across threads and making it possible for the 
compiler to optimize based on the fact that it knows that a variable is 
thread-local.

- Jonathan M Davis


More information about the Digitalmars-d mailing list