Grund-Operationen für Koroutinen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]

*Für Koroutinen gibt es den Datentyp Coroutines.Coroutine. Diese Datenstruktur besteht aus einem Stapel und die Position der nächsten auszuführenden Instruktion.
 
*Das Modul Coroutines stellt ferner die Variablen Coroutines.current und Coroutines.source zur Verfügung, die auf die derzeit aktive Koroutine und die davor aktive Koroutine verweisen.
 
*Im Modul SYSTEM gibt es die Operationen CRSPAWN und CRSWITCH.
 
*PROCEDURE CRSPAWN(VAR cr: Coroutines.Coroutine);
erzeugt eine neue Koroutine, wobei der neue Koroutinen-Stapel zunächst nur aus den Parametern und lokalen Variablen der aufrufenden Prozedur besteht. Die nächste Instruktion der neuen Koroutine liegt unmittelbar hinter der CRSPAWN-Anweisung. Die alte (aufrufende) Koroutine beendet sofort die Ausführung der Prozedur, als ob RETURN aufgerufen worden wäre.
 
*Prozeduren, die sich zu neuen Koroutinen machen, müssen globale Prozeduren sein und dürfen keinen Rückgabewert haben. Ein RETURN der Koroutinen-Prozedur ist nach CRSPAWN nicht mehr zulässig, da es dafür keine Rückkehrposition mehr gibt.
 
*PROCEDURE CRSWITCH(cr: Coroutines.Coroutine);
wechselt zu der angegebenen Koroutine. Die aufrufende Koroutine steht nach dem Wechsel unter Coroutines.source zur Verfügung.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005