atomic
An operation, or a std::atomic variable, that no other thread can see half-done.
std::atomic<T> makes each read, write, or read-modify-write (fetch_add, compare_exchange) indivisible and race-free; it works for trivially copyable types, lock-free for small ones on common hardware.
See also