I wish all qualifiers were revisited with an eye for simplification
nise at nise.com
Thu Aug 13 19:22:29 UTC 2020
On Sunday, 2 August 2020 at 20:50:14 UTC, Andrei Alexandrescu
> * Nobody - probably not even Timon - knows what "shared" does
> or is supposed to do and not do. The most I got from Walter
> ever is "shared is intentionally restricted so you can't do
> much without a cast". Yet the definition of "much" and the
> conditions under which casting is legit are not anywhere to be
Shouldn't shared just be a relaxation in compiler checks so that
any data that has the "shared" qualifier is allowed to be shared
between threads. This is pretty much what __gshared is about. For
the compiler to check if you really can share the data is
currently impossible with current compiler technology. It can be
atomic integers, Intel TSX, some very elaborate lockless
algorithm, lockless COW, even mutexes/spinlocks if necessary.
Programmer must "manually" ensure that the data can be shared,
there is no other way.
So yes, a revisit of the qualifiers should be done so that they
can be precisely defined.
More information about the Digitalmars-d