Funciona? Se aceptan criticas, sugerencias y comentarios
EJERCICIO 6:
PROGRAM EMBOTELLADORA
TASK Cinta IS
ENTRY Llenado;
ENTRY Tapado;
END Cinta
TASK BODY Cinta IS
begin
while(true){
ACCEPT Llenado;
ACCEPT Tapado;
avanzo_cinta();
Tapar.Puedo();
Llenar.Puedo(); // Esto no se si esta bien, de alguna forma es secuencial pero no se me ocurre como hacer para que TASK Cinta avise a los otros dos de forma concurrente.
}
end
END Cinta
TASK Tapar IS
ENTRY Puedo;
END Tapar
TASK BODY Tapar IS
begin
while(true){
if(puedo_tapar)
tapar_botella;
cinta.Tapado();
ACCEPT Puedo;
}
end
END Tapar
TASK Llenar IS
ENTRY Puedo;
END Llenar
TASK BODY Llenar IS
begin
while(true){
if(puedo_llenar)
llenar_botella;
cinta.Llenado();
ACCEPT Puedo;
}
end
END Llenar
BEGIN
/* cosas o while(true) */
END
Desde ya, muchas gracias