## Description

C atomic_exchange(volatile A *object, C desired)

C atomic_exchange_explicit(volatile A *object,
C desired,
memory_order order)

C atomic_exchange_explicit(volatile A *object,
C desired,
memory_order order,
memory_scope scope)

Atomically replace the value pointed to by object with desired. Memory is affected according to the value of order. These operations are read-modify-write operations (as defined by section 5.1.2.4 of the C11 Specification). Atomically returns the value pointed to by object immediately before the effects.