Very limited shared promotion

Walter Bright newshound2 at digitalmars.com
Mon Jun 24 02:44:24 UTC 2019


On 6/22/2019 4:24 PM, Manu wrote:
> If you engage in @system code to distribute across threads, it's a no brainer to 
> expect that code to handle cache coherency measures. It would be broken if it 
> didn't.

It is not a no-brainer. Nowhere is it specified, and all the examples and 
tutorials I've seen say DO NOT follow an atomic write with a non-atomic read of 
the same variable in another thread. Not only that, it's usually a CENTRAL THEME 
of these expositions.

The only synchronization required (will be) for atomics, and that assumes atomic 
write followed by atomic read. Not atomic write followed by non-atomic read of 
the same memory.

The code may appear to work on the x86 because Intel CPUs do some additional 
not-required synchronization on reads. But it'll be leaving a nightmare for some 
poor sap who tries to port the code to the ARM.





More information about the Digitalmars-d mailing list