waiting room
1:
2:
3:

  while (true) {
    Local_section(1);
    Wait(S,1);
    Critical_section(1);
    Signal(S);
  }

  while (true) {
    Local_section(2);
    Wait(S,2);
    Critical_section(2);
    Signal(S);
  }

  while (true) {
    Local_section(3);
    Wait(S,3);
    Critical_section(3);
    Signal(S);
  }
S
+ 1 -
0 0 ?