What exactly shared means?

Moritz Maxeiner via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jan 2 04:09:06 PST 2015


On Friday, 2 January 2015 at 11:47:47 UTC, Daniel Kozak wrote:
> I always think that shared should be use to make variable 
> global across threads (similar to __gshared) with some 
> synchronize protection. But this code doesn't work (app is 
> stuck on _aaGetX or _aaRehash ):
>
>
> But when I add synchronized block it is OK:
>

I am not aware of any changes since the following thread (see the 
second post): 
http://forum.dlang.org/thread/brpbjefcgauuzguyiiwr@forum.dlang.org#post-mailman.679.1336909909.24740.digitalmars-d-learn:40puremagic.com

So AFAIK "shared" is currently nothing more than a compiler hint 
(despite the documentation suggesting otherwise (Second to last 
paragraph of "__gshared" doc compares it to "shared", see 
http://dlang.org/attribute.html).

My current understanding is that you either use "__gshared" and 
do your own synchronisation, or you use thread local storage, 
i.e. do not use "shared", but I would be happy to be proven wrong 
on that point.

BTW, you can use the following search to find more information 
(It is was I used to find the above linked thread): 
https://www.google.com/?#q=site:forum.dlang.org+shared


More information about the Digitalmars-d-learn mailing list