Read–modify–write

In computer science, read–modify–write is a class of atomic operations (such as test-and-set, fetch-and-add, and compare-and-swap) that both read a memory location and write a new value into it simultaneously, either with a completely new value or some function of the previous value.

These operations prevent race conditions in multi-threaded applications.

These atomic operations are also heavily used in non-blocking synchronization.

[2] Read–modify–write instructions often produce unexpected results when used on I/O devices, as a write operation may not affect the same internal register that would be accessed in a read operation.

[3] This term is also associated with RAID levels that perform actual write operations as atomic read–modify–write sequences.