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/brpbjefcgauuzguyi...@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