INITIALIZATION:
shared int turn; ... turn = i ;ENTRY PROTOCOL (for Process i ):
/* wait until it's our turn */ while (turn != i ) { }EXIT PROTOCOL (for Process i ):
/* pass the turn on */ turn = j ;ANALYSIS: Each process passes the turn to the other upon exit, and cannot get it back until the other process actually uses it. Thus one process may block another even when it is not in a critical section. The progress requirement is violated.