Usamos para cada proceso una variable v0 respectivamente v1 que indica si el correspondiente proceso está usando el recurso.
P0 P1 non-critical section non-critical section wait until v1 equals false wait until v0 equals false set v0 to true set v1 to true critical section using r critical section using r set v0 to false set v1 to false
El problema está escondido en el uso de las variables de control. v0 se debe cambiar a verdadero solamente si v1 sigue siendo falso.