atomic read-modify-write
Reading a value, changing it and writing it back as one indivisible step, so no other thread's update can slip in between.
An atomic read-modify-write (fetch-and-add, exchange, compare-and-swap, fetch-and-or ...) reads a location, computes a new value and writes it with no intervening write by any other agent; all atomic RMWs on one location form a single total order.