En la letra del problema dice que la cantidad de jugadores no está acotada, sin embargo por cómo está hecha la solución, solo se permiten 5 jugadores ya que se hace 5 send en el main, verdad?
Por otro lado, me surgen dudas más teóricas sobre maiboxes debido a que encaré la solución de otra manera:
Supongamos que tengo muchas instancias de Jugadores como dice la letra y un Servidor donde le mandan las jugadas, es correcto hacer algo así:
procedure Jugador() { quiero_jugar.send(NULL); jugada = random(); mtx.receive(); jugadas.send(jugada); }
procedure Servidor () { while (true) { quiero_jugar.receive(); mtx.send(NULL); valor = jugadas.receive(); } }
Mis consultas son:
- Los send se "guardan"? Es decir si X procesos hacen send, despues voy a poder hacer X receive sobre ese mailbox sin bloquear ?
- En el caso de arriba, me estoy asegurando la mutua exclusión? No estoy seguro si esa es la forma correcta de hacer un mutex "casero" con mailboxes.
Gracias