__gshared as part of alias

Nicholas Wilson iamthewilsonator at hotmail.com
Wed Jan 17 10:44:24 UTC 2018


On Wednesday, 17 January 2018 at 07:53:24 UTC, Jonathan M Davis 
wrote:
> I don't know what you're doing, and maybe __gshared is the 
> appropriate solution for what you're trying to do, but in 
> general, if you're not trying to bind to a C global variable, 
> you should be using shared, and using __gshared is risking bugs 
> precisely because it is not considered part of the type and 
> does not prevent you from using it a thread-local context. The 
> compiler will treat it as thread-local, risking subtle bugs 
> that shared would catch.
>
> - Jonathan M Davis

I was under the impression that with shared you have to either
a) atomically load it or
b) cast away shared before loading it.

As explained in 
https://github.com/ldc-developers/druntime/pull/114#discussion_r161472745 that would very much add boilerplate to its most frequent use case.


More information about the Digitalmars-d-learn mailing list