Kilpailutilanne on bugi, jossa lopputulos riippuu jaettua tilaa käyttävien samanaikaisten operaatioiden ennakoimattomasta ajoituksesta. Klassinen tapaus on read-modify-write, joka ei ole atominen.
Miten se toimii
counter += 1 näyttää atomiselta mutta on todellisuudessa kolme askelta: lue, lisää, kirjoita. Kaksi säiettä voi lomittua niin, että yksi päivitys menetetään.
counter = 0
Säie A: lue 0 ─────────── kirjoita 1
Säie B: lue 0 ─ kirjoita 1
Tulos: 1 (pitäisi olla 2 — yksi lisäys menetetty)
