DIP 1024--Shared Atomics--Community Review Round 1

IGotD- nise at nise.com
Tue Oct 1 14:14:47 UTC 2019


On Tuesday, 1 October 2019 at 10:40:52 UTC, Mike Parker wrote:
>
>"This change will require using core.atomic or equivalent 
>functions to read and >write to shared memory objects. It will 
>prevent unintended, inadvertent non-use of >atomic access."

What if the type is complex (like a struct) outside what the ISA 
can handle? Usually this only applies for integers 8 - 128 bits 
depending on architecture, anything beyond that is out of reach 
unless you want to dig into Intel TSX which the shared attribute 
isn't suitable for.

Another thing that is left out are the effects of operator 
overloading.

shared int s;

// What would this do? Atomically increment s or just atomically 
load s, add one
// and then atomically store s?
s = s + 1;
// Would this atomically increase s and return the value after 
increment?
s++;




More information about the Digitalmars-d mailing list