↓ Skip to main content

“it very much depends on the timing, so you can’t reproduce it deterministically and you can’t debug it.”

matkladmatklad.github.io ↗

The usual concurrency test hammers a counter from many threads and hopes. Shrink it and it passes by luck. Make every atomic operation pause so the test picks the interleaving, and a property-based test finds the race in two increments. Exhaustive mode checks all 81,133 interleavings of five increments in 8.65 seconds. A stress test that passes proves nothing.