// Indicate the intent to enter the critical section bIWantToEnter = true; // Be polite and act as if it is not our // turn to enter the critical section iWhoseTurn = HIS_TURN; // Wait until the other process either does not // intend to enter the critical section or // acts as if its our turn to enter while (bHeWantsToEnter && (iWhoseTurn != MY_TURN)) { } // Code of critical section comes here ... bIWantToEnter = false;