Hola!
La condición 'when cantPersonas == 0' está bien! Porque ahí si hay alguien adentro del baño no dejás pasar a la persona de mantenimiento. Lo que está mal es la primer parte de la condición: 'when llegoMantenimiento'count > 0', porque eso tiene el efecto que expliqué en el primer mensaje.
La prioridad está bien implementada y eso se controla en la guarda del accept entrar, donde escribiste 'when llegoMantenimiento´count == 0'. Eso funciona correctamente poque el flujo es: 1) personas entran al baño 2) llega el limpiador y se tranca porque su entry call está cerrada con la condición 'when cantPersonas == 0' 3) las personas adicionales que llegan al baño también se trancan porque el accept entrar está cerrada por la guarda 'when llegoMantenimiento´count == 0'.
Luego de eso, el flujo va a ser que 1) las personas salen del baño 2) cuando no quede ninguno en el baño se va a cumplir la condición 'when cantPersonas == 0' y el limpiador va a poder entrar 3) cuando el limpiador salga del baño va a dejar entrar a personas adicionales. Es decir, funciona bien :)
La condición 'when cantPersonas == 0' está bien! Porque ahí si hay alguien adentro del baño no dejás pasar a la persona de mantenimiento. Lo que está mal es la primer parte de la condición: 'when llegoMantenimiento'count > 0', porque eso tiene el efecto que expliqué en el primer mensaje.
La prioridad está bien implementada y eso se controla en la guarda del accept entrar, donde escribiste 'when llegoMantenimiento´count == 0'. Eso funciona correctamente poque el flujo es: 1) personas entran al baño 2) llega el limpiador y se tranca porque su entry call está cerrada con la condición 'when cantPersonas == 0' 3) las personas adicionales que llegan al baño también se trancan porque el accept entrar está cerrada por la guarda 'when llegoMantenimiento´count == 0'.
Luego de eso, el flujo va a ser que 1) las personas salen del baño 2) cuando no quede ninguno en el baño se va a cumplir la condición 'when cantPersonas == 0' y el limpiador va a poder entrar 3) cuando el limpiador salga del baño va a dejar entrar a personas adicionales. Es decir, funciona bien :)
Saludos,
Federico