shared - i need it to be useful
Kagamin
spam at here.lot
Tue Oct 16 09:20:14 UTC 2018
On Monday, 15 October 2018 at 18:46:45 UTC, Manu wrote:
> Current situation where you can arbitrarily access shared
> members
> undermines any value it has.
The value of shared is existence of thread-local data that's
guaranteed to be not shared, so you don't need to worry about
thread-local data being shared, and shared protects that value
well.
> Assuming this world... how do you use shared?
Unique solution for each case.
> If you write a lock-free queue for instance, and all the
> methods are
> `shared` (ie, threadsafe), then under the current rules, you
> can't
> interact with the object when it's not shared, and that's fairly
> useless.
Create it as shared.
> Assuming the rules above: "can't read or write to members", and
> the understanding that `shared` methods are expected to have
> threadsafe implementations (because that's the whole point),
> what are the risks from allowing T* -> shared(T)* conversion?
All data becomes possibly shared, so you can't assume it's
unshared, effectively C-style sharing. BTW D supports the latter
already.
More information about the Digitalmars-d
mailing list