 
  
  
  
 
 Weiter: Geschützte Objekte
Hinauf: 9 Tasks
 Zurück: 9.9 Rendezvous und 
 
 
   
So always look on the bright side of death!
Just before you draw your terminal breath.
Life's a piece of shit,
When you look at it.
Aus Monty Python's 
,,Das Leben des Brian``.
Jedem Task ist eine Vatereinheit zugeordnet. Das kann jener Programmteil
sein, in dem das entsprechende Task-Objekt deklariert ist (also
z.B. eine Prozedur, ein Paket oder ein anderer Task), oder der
Programmteil, in dem das entsprechende Task-Objekt dynamisch mit 
new angelegt worden ist. Man sagt in diesem Fall, daß der Task von
seiner Vatereinheit abhängt. In allen Fällen gilt, daß die Exekution
der Vatereinheit nicht beendet werden kann, bevor alle von der
Vatereinheit abhängigen Tasks sich beendet haben oder beendet worden sind.
Wie wird aber nun ein Task beendet oder wie kann er sich selbst
beenden? Die erste Frage haben wir schon beantwortet: mit der Abort-Anweisung
aus Kapitel 9.4.3.
Für die zweite Frage gibt es zwei Antworten:
- 
Der Task erreicht die letzte Anweisung seines Body's.
- 
Wie wir bereits oben gesehen haben, bestehen Tasks gewöhnlich aus
einer Select-Anweisung innerhalb einer Endlosschleife. Klarerweise
kann so ein Task nie die letzte Anweisung seines Body's erreichen.
Um trotzdem eine halbwegs annehmbare Möglichkeit zur Beendigung
(Termination) eines solchen Tasks zu schaffen, erlaubt Ada eine 
Terminate-Alternative   
in einer Select-Anweisung, z.B.:
 task body Assistent is 
 
Johann Blieberger
Wed Feb 11 09:58:52 MET 1998