= Data race
For the C++ case used here, conflicting accesses by different <software threads>, at least one non-atomic, with neither ordered before the other by <happens-before>. Such a <data race> has undefined behavior. A <race condition> is broader: the <lost update> with separate atomic reads and writes depends on their order while avoiding a <data race>.<Working Draft, Standard for Programming Language C++ (N4861)>[pp. 79–80: conflicting actions and undefined behavior]{ref}
Back to article page