Programación en Ada/Tareas/Dependencia
Dependencia de tareas
editarLas 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
PTTareaGlobalis
access
TTarea; T1, T2: TTarea; PunteroTareaGlobal1: PTTareaGlobal;begin
-- Se activan T1 y T2.
declare
type
PTTareaLocalis
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.