|
PROCEDURE Tschi(VAR ha, tschi: Coroutines.Coroutine); VAR main: Coroutines.Coroutine; i: INTEGER; BEGIN main := Coroutines.current; SYS.CRSPAWN(tschi); i := 0; WHILE i < 10 DO Write.Line("Tschi!"); SYS.CRSWITCH(ha); INC(i); END; SYS.CRSWITCH(main); END Tschi; |
Die Prozedur Tschi notiert sich zunächst
einen Verweis auf die aktuelle Koroutine, wenn sie
aufgerufen wird. Das erlaubt später die Rückkehr
zur Haupt-Koroutine, sobald die beiden Koroutinen
ihr Wechselspiel beendet haben.
| |
Danach wird mit SYS.CRSPAWN(tschi); die neue
Koroutine erzeugt, die dann später erst aktiviert
wird, wenn die Koroutine ha zum ersten Mal
nach tschi wechselt.
| |
Nach 10 Wechseln endet das Spiel mit SYS.CRSWITCH(main);.
Dann geht es bei der Hauptkoroutine unmittelbar hinter
dem SYS.CRSWITCH(ha); in der Prozedur DoIt weiter.
|
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005 |