None
FR
The Balancing Act of Choosing Nonblocking Features: Design requirements of nonblocking systems
Maged M. Michael
ACM Queue - Concurrency
What is nonblocking progress? Consider the simple example of incrementing a counter C shared among multiple threads. One way to do so is by protecting the steps of incrementing C by a mutual exclusion lock L (i.e., acquire(L); old := C ; C := old+1; release(L);). If a thread P is holding L, then a different thread Q must wait for P to release L before Q can proceed to operate on C. That is, Q is blocked by P.