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.