shared - i need it to be useful
Stanislav Blinov
stanislav.blinov at gmail.com
Fri Oct 19 00:29:49 UTC 2018
On Thursday, 18 October 2018 at 23:47:56 UTC, Timon Gehr wrote:
> I'm pretty sure you will have to allow operations on shared
> local variables. Otherwise, how are you ever going to use a
> shared(C)? You can't even call a shared method on it because it
> involves reading the reference.
Because you can't really "share" C (e.g. by value). You share a
C*, or, rather a shared(C)*. The pointer itself, which you own,
isn't shared at all, and shouldn't be: it's your own reference to
shared data. You can read and write that pointer all you want.
What you must not be able to do is read and write *c.
Although, when it's a global?.. I'm not sure. We can have the
compiler always generate a by-reference access, i.e. make that
part of the language spec. Because full-on read of C.sizeof can't
be statically proven thread-safe generically anyway (that's why
generated copying and assignment don't make any sense for
`shared`).
More information about the Digitalmars-d
mailing list