Cancel Test
- This is interesting.
- Three threads. Basic-test infinite loop +
- Wacko cancel thread
- This is big.
- 4 GB of state; 10 million states; at least 100000 maxdepth
- This found a real bug
- On uniprocessor, with cooperative scheduling, another thread runs only if current thread blocks
- Means threads are never canceled while running
- If cancel check before blocking succeeds, a mutex isn’t unlocked. (In cond_wait())