El cajero está implementado de la siguiente forma:
procedure cajero()
var botella: Botella;
ticket: Ticket;
begin
cajero_atender.send(NIL);
loop
cajero_cobrar.receive(botella);
ticket := retornar_ticket(botella);
cajero_ticket.send(ticket);
end
end
En mi solución en vez de bloquear a los Miembros con "cajero_atender" se bloquean esperando la confirmación del Cajero y queria saber si está bien planteado de la siguiente manera:
procedure cajero()
var botella: Botella;
begin
loop
quiero_pagar.receive(botella);
PAGAR.send(NIL); //confirmación al miembro de que puede pagar
obtener_ticket.receive(msg);
PAGAR.send(NIL); //confirmación al miembro de que puede pagar
obtener_ticket.receive(msg);
ticket.send(retornar_ticket(botella));
end
end
Saludos