1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int turno = 1; /* Inicialmente el turno es del proceso 1 */

/* Ahora el código del proceso 1 contendría algo como: */
while (turno != 1) {
  esperar(); /* ¿Otro proceso? */
 }
/* Sección crítica */
cuenta = cuenta + 1;
turno = 2;

/* Y el del proceso dos: */
while (turno != 2) {
  esperar();
 }
/* Sección crítica */
cuenta = cuenta + 1;
turno = 1;