On Saturday, 27 May 2017 at 10:02:35 UTC, Jonathan M Davis wrote:
Actually, not so much, because in D, most variables are _not_ shared across threads (unlike in C).

If you don't share data, you don't need to worry how to share data. But if you do, D supports C model.

The compiler is free to assume that if a variable is not marked as shared, it's thread-local, and it can optimize accordingly.

Just like in C.

Using __gshared on anything other than C globals is just begging for trouble.

Just like in C.

As such, I'd strongly argue that using __gshared with anything other than actual C globals is a serious code smell, and it's a practice that should be actively discouraged.

You can't just discourage to write code. What to do instead, open a bakery?

Reply via email to