Obstruction-free is a weak concurrency progress guarantee: an operation completes in finite time when it eventually runs in isolation, without interference or contention from other threads. It says nothing about completion under sustained competition. section 8.5.1
Use obstruction-free to reason about these operational trade-offs:
- Isolation enables progress, but competing threads can repeatedly interfere and produce livelock. section 8.5.1
- The guarantee is stronger than blocking but weaker than lock-free and wait-free progress conditions. section 8.5.1 section 8.7
- Obstruction-freedom may be insufficient for low-latency systems because contention can prevent predictable completion. section 8.5.1
Mutex contention as a contrast
A thread holding a mutex can delay another thread indefinitely, and a later contender may acquire the mutex first. This illustrates blocking rather than obstruction-free progress; obstruction-freedom instead guarantees completion only when the operation eventually runs without competing interference. section 8.5.1
Figure 8.3 The relationship between different wait-free and lock-free progress conditions
Compare obstruction-free with neighboring wait-free and lock-free progress conditions. section 8.5.1
