En race condition är en bugg där resultatet beror på den oförutsägbara tidsordningen av samtidiga operationer som kommer åt delat tillstånd. Det klassiska fallet är en read-modify-write som inte är atomär.
Hur det fungerar
counter += 1 ser atomärt ut men är egentligen tre steg: läs, addera, skriv. Två trådar kan varvas så att en uppdatering går förlorad.
counter = 0
Thread A: read 0 ─────────── write 1
Thread B: read 0 ─ write 1
Result: 1 (should be 2 — one increment lost)
