|
PROCEDURE Ha(VAR ha, tschi: Coroutines.Coroutine); BEGIN SYS.CRSPAWN(ha); LOOP REPEAT Write.String("Ha"); UNTIL Random.Val(1, 5) = 1; SYS.CRSWITCH(tschi); END; END Ha; |
Gleich zu Beginn des Aufrufes erzeugt die Prozedur Ha
eine neue Koroutine. Über den Referenz-Parameter ha
erhält der Aufrufer einen Verweis auf die neu geschaffene
Koroutine.
| |
Der Referenz-Parameter tschi hat zunächst einen
undefinierten Wert. Aber sobald die so referenzierte
Variable beim Erzeugen der nächsten Koroutine durch Tschi
einen Wert erhält, wird er hier zugänglich.
| |
Erst mit dem Aufruf SYS.CRSWITCH(ha); findet der
erste Wechsel von der Haupt-Koroutine zur Koroutine ha statt.
Diese beginnt dann ihre Ausführung ab dem LOOP, also
unmittelbar hinter SYS.CRSPAWN.
|
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005 |