32/64-bit atomics for any data type
Status: Beta
Brought to you by:
canonizer
Support atomics for any 32/64-bit data type. Of course, atomicity is guaranteed for top-level expression update only and does not extend to any global variable modified inside the function called.
Expressions shall be implemented by doing in-register value update + atomicCAS() in a loop. Sure, this requires the use of volatile pointers.
Standard atomic{} and atomic() syntax shall be used for such expressions.