[cpp-threads] Yet another visibility question
    Alexander Terekhov 
    alexander.terekhov at gmail.com
       
    Thu Jan 11 18:19:48 GMT 2007
    
    
  
On 1/11/07, Paul E. McKenney <paulmck at linux.vnet.ibm.com> wrote:
[... AMD x86-64 ...]
>        do {
>                l = x;
>        } while (cmpxchg(&x, l, l) != l);
Regarding providing illusion of remote write atomicity (under
assumption that AMD x86-64 is PC and not TSO) that's no better than
        l = cmpxchg(&x, 42, 42); // with LOCK prefix
because (quoting AMD64 Architecture Programmer's Manual Volume 3)
"CMPXCHG always does a read-modify-write on the memory operand. If the
compared operands were unequal, CMPXCHG writes the same value to the
memory operand that was read."
regards,
alexander.
    
    
More information about the cpp-threads
mailing list