Presently, no. There are operations, such as with semaphores, where this sort 
of functionality might be used but has been left unspecified as many CPUs don't 
support exchanges; for most older ones only loads and stores are atomic, and 
the volatile modifier and sigatomic_t types are geared to be used this way. 
Without direct hardware support, on those systems some aspects of c11s 
stdatomic interfaces get a performance and code size penalty to emulate 
robustly; possibly why it's an optional header entirely.
On Friday, February 14, 2020 Danny Niu <danny...@hotmail.com> wrote:
As asked, is there an CMPXGCHG-like function in the standard? 

I tried looking for keywords such as cmp, comp, ch, but 
nothing turned up in the system interfaces list. 

The C language introduced atomic functions in C11 though. 


Reply via email to