El profesor dijo que en este caso:
send(mail_admin,0);
caja = receive(mail_admin);
Lo que pasa ahí es que un proceso puede hacer el send y bloquearse y otro puede hacer el send y el receive primero que el anterior. O sea que el orden en que se hacen los receive no es el mismo con el que se hicieron los send. Para solucionar esto deberias mutuoexcluir ese par de líneas.
En que caso se bloquearía el proceso si el send es no bloqueante? O en ese caso, no sería necesario mutoexcluir esas lineas?
Gracias,
Slds!