fixed a minor bug in cmpxchg not properly dealing with seq_cst failure and non-seq_cst success