shared methods

Kagamin spam at here.lot
Sat Jan 25 13:41:20 PST 2014


On Saturday, 25 January 2014 at 10:00:58 UTC, Johannes Pfau wrote:
> (For example it isn't valid in D to access a shared variable 
> with
> normal operations anyway, AFAIK. You need to use the atomicOp 
> things
> and these will the worry about the hardware part, using the 
> correct
> instructions and so on)

Is it invalid to access shared data on stack too? How about 
closures?

> See also:
> http://www.drdobbs.com/parallel/volatile-vs-volatile/212701484
>
> So volatile is a completely different thing in C#/JAVA and 
> C/C++. This
> is why I'm confused, C compilers are not supposed to guarantee 
> that
> another thread can see all changes to a volatile variable, 
> volatile must
> just prevent compiler optimizations. So if Itanium C compilers
> automatically use the barrier/fence instructions for volatile 
> that's
> IMHO a compiler performance bug.

The standard says "memory" and doesn't address cache and 
processor optimizations, so it probably allows different 
interpretations. Even if there's no fence, disallowed compiler 
optimizations are still a performance hit - on all platforms.


More information about the Digitalmars-d-learn mailing list