next up previous contents index
Weiter: 9.5.3 Der Private-Teil Hinauf: 9.5 Das Rendezvous-Konzept Zurück: 9.5.1 Wie ein

9.5.2 Die Requeue-Anweisung

   

Mit einer Requeue-Anweisung kann der gerufene Task eine Accept-Anweisung beenden und den rufenden Task zu der Warteschlange eines anderen Entry's ,,umleiten``. Die Syntax dazu lautet

requeue <entry_name>;

Sollte der rufende Task nicht mehr existieren, sollte der rufende Task mittlerweile seinen Entry-Call zurückgezogen haben oder sollte eine Zeitschranke überschritten worden sein, so macht so eine Requeue-Anweisung natürlich keinen Sinn mehr. Um solche Fälle zu handhaben, schreibt man

requeue <entry_name> with abort;

In beiden Fällen kann sich der Entry, zu dem umgeleitet wird, sowohl innerhalb als auch außerhalb des Tasks befinden, aus dem heraus umgeleitet wird. Der Ziel-Entry darf entweder gar keine Parameter haben oder sein Parametertyp-Profil muß in Übereinstimmung zum Parametertyp-Profil jenes Entry's sein, aus dessen Accept-Anweisung heraus das Requeue erfolgt.

In unserem Beispiel könnte der betreuende Assistent etwa den Studierenden an einen seiner Kollegen, d.h., an einen anderen Assistenten verweisen. Bei einem requeue with abort hätte der Studierende die Chance, sich nicht in die dort befindliche Warteschlange einzureihen, sondern er kann, wenn etwa die Zeit, die er für die Betreuungszeit reserviert hatte, abgelaufen ist, mit einer anderen Tätigkeit fortfahren. Bei einer normalen Requeue-Anweisung muß er sich auf jeden Fall in die dort befindliche Warteschlange einreihen und darauf warten, daß er betreut oder weitergeschickt wird. Nähres dazu im folgenden Unterabschnitt.



Johann Blieberger
Wed Feb 11 09:58:52 MET 1998