Programación en Ada/Tareas/Dependencia
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.