On Monday, 8 August 2022 at 07:14:33 UTC, vc wrote:
it seems change it to working is working

```d
 __gshared bool zeus;
 ```

but as I'm new in to D, i will like to hear thoughts even if it works for me

Never ever use `__gshared` ever. It's a glaring safety hole. Use `shared` instead.

If you're running into compilation errors with `shared`, that's the compiler trying to keep you from shooting your foot off. You're supposed to think hard about thread-safety and only then cast `shared` away in the right spot.

With `__gshared`, the compiler just pretends that it doesn't see that the variable is shared. You're pretty much guaranteed to produce race conditions unless you think even harder than you would have with `shared`.

By the way, is there some resource that recommends `__gshared` over `shared`? It seems that many newbies reach for `__gshared` first for some reason.

Reply via email to