Difference between __gshared and shared.

via Digitalmars-d digitalmars-d at puremagic.com
Thu Jul 9 07:57:54 PDT 2015


On Thursday, 9 July 2015 at 14:03:18 UTC, Jonathan M Davis wrote:
> On Thursday, 9 July 2015 at 12:39:00 UTC, Márcio Martins wrote:
>>[...]
> Well, the compiler is free to assume that a variable that is 
> not marked as shared is thread-local. So, it's free to make 
> optimizations based on that. So, for instance, it can know for 
> a fact that
>
> [...]

But this is what a C/C++ compiler would do, unless you your data 
is qualified as volatile. I believe __gshared also implies the 
volatile behavior, right? I wouldn't make sense any other way.

So basically, __gshared is like saying "I want the C/C++ 
behavior, and I accept I am all on my own as the compiler will 
not help me".


More information about the Digitalmars-d mailing list