Modification order and coherence Most of the common target architectures (x86,
Power, ARM, SPARC-TSO) provide a relatively strong guarantee about the ordering of
writes to a single location in a program: they ensure that all of the writes at a single
location appear to happen in a sequence, and that reads from any thread see the writes
in an order consistent with that sequence. C/C++11 provides a similar guarantee over
atomic locations: atomic actions are governed by a per-location total order over the
writes, called modification order .