What classification should shared objects in qeued thread pools have?
nise at nise.com
Thu Oct 1 00:13:41 UTC 2020
On Thursday, 1 October 2020 at 00:00:06 UTC, mw wrote:
> I think using `shared` is the D's encouraged way.
> If there is a better way do this in D, I'd want to know it too.
I think that the shared in shared structs should not be
transitive to members of the struct. The compiler should not
enforce this as we don't really know what the programmer will do
inside the struct to ensure the thread safety.
For example completely lockless algorithms can often be a
combination of atomic operations and also non-atomic operations
on data members.
I originally thought that DIP 1024 only applied for integer types
alone (not inside structs). I don't really understand the
rationale why a shared struct should all have atomic integers, it
doesn't make any sense.
More information about the Digitalmars-d-learn