atomic operations compared to c++
    Guillaume Piolat via Digitalmars-d 
    digitalmars-d at puremagic.com
       
    Wed Jun 14 05:42:30 PDT 2017
    
    
  
On Tuesday, 13 June 2017 at 06:12:46 UTC, gzp wrote:
> But what about compare_exchange (CAS) ? In C++ one have to 
> provide Memory ordering for success and failure, but not in D.
I have some difficulty already to comprehend MemoryOrder.rel and 
MemoryOrder.acq
A cas with MemoryOrder.raw wouldn't be very useful.
> Does it mean, it is the strongest sequaential all the time, all 
> some explicit fence have to be provided.
It uses lock xchg 
https://github.com/dlang/druntime/blob/ce0f089fec56f7ff5b1df689f5c81256218e415b/src/core/atomic.d#L769
So no additional fences needed, it is already the strongest IIRC.
imho, if a CAS requires additional memory barriers, it's a bit 
useless..
    
    
More information about the Digitalmars-d
mailing list