Las reglas de dependencia de las
tareas∞ son:
- Si la tarea es creada por la elaboración de una declaración∞ de objeto∞, depende de la unidad∞ que incluya dicha elaboración.
- Si la tarea es creada por la evaluación de una sentencia new∞ para un tipo puntero∞ dado, depende de cada unidad que incluya la elaboración de la declaración de dicho tipo puntero.
Por ejemplo:
declare∞
task∞ type∞ TTarea;
type∞ PTTareaGlobal
is∞ access∞ TTarea;
T1, T2: TTarea;
PunteroTareaGlobal1: PTTareaGlobal;
begin∞ -- Se activan T1 y T2.
declare∞
type∞ PTTareaLocal
is∞ access∞ TTarea;
PunteroTareaGlobal2: PTTareaGlobal :=
new∞ TTarea;
-- Se activa PunteroTareaGlobal2.all después de la asignación new.
PunteroTareaLocal: PTTareaLocal :=
new∞ TTarea;
-- Se activa PunteroTareaLocal.all después de la asignación new.
T3: TTarea;
begin∞ -- Se activa T3.
-- ...
end∞;
-- Se espera la terminación de T3 y PunteroTareaLocal.all.
-- Continúa la ejecución de PunteroTareaGlobal2.all.
-- ...
end∞;
-- Se espera la terminación de T1, T2, PunteroTareaGlobal1.all
-- y PunteroTareaGlobal2.all.
Manual de referencia de Ada