Programación en Ada/Tareas/Dependencia

← Tareas/Dinámicas Dependencia de tareas Tareas/Ejemplos →


Dependencia de tareas

editar

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

editar