Ejercicio 4 , con ADA

Ejercicio 4 , con ADA

de Guzman Pieroni Amondaray -
Número de respuestas: 1

Buenas, esta seria una posible solucion al ejercicio 4 del Practico 5 pero con ADA. Podria saber si esta bien? 

image.png

En respuesta a Guzman Pieroni Amondaray

Re: Ejercicio 4 , con ADA

de Federico Rivero -
Hola Guzmán!

Esa solución tiene varios problemas, en primer lugar, eso es un único task, y para que se complete un rendezvous precisás un task que esté aceptando la entry call y otro que esté intentando invocarla. Así que vas a precisar como mínimo algún otro task que intente invocar Maquina.llenar_botella() o Maquina.tapar_botella(). Por otro lado, en ningún lugar invocás a la función tapar_botella() ni llenar_botella(). Lo que se hace en este código que escribiste es definir entry calls con los mismos nombres, pero una vez que se produce el rendezvous, no se ejecuta ningún código. Las entry calls Maquina.llenar_botella y Maquina.tapar_botella deberían tener un cuerpo donde se ejecuten las funciones llenar_botella() y tapar_botella() que provee la letra.

Luego, tiene un problema de concurrencia y es que las funciones llenar_botella y tapar_botella (asumiendo el arreglo que puse más arriba) se ejecutan en el mismo task, por lo tanto no pueden ejecutarse a la misma vez. Eso, lamentablemente, invalida la solución.

Saludos,
Federico