Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, SAI

WS 2000/01 || Entwicklung objekt-orientierter Bibliotheken || Beispiele

Sleep


Sleep
Dieses Modul zeigt wie einfach es ist, eine Koroutine auf ein globales Ereignis warten zu lassen. Als globales Ereignis tritt hier das Eintreffen einer bestimmten Uhrzeit auf. Das Programm liest von der Eingabe eine Reihe von Zeiten (die relativ zur aktuellen Zeit in Sekunden angegeben werden) und zugehörige Texte, kreiert für jedes dieser Paare eine Koroutine, die dann darauf wartet, daß diese Zeit eintritt, um dann den entsprechenden Text auszugeben.

Wenn Sie anstatt einer Sekundenzahl einen Buchstaben eingeben, wird die Einleseschleife und damit die ``Haupt-Koroutine'' beendet. Damit ist aber noch lange nicht das Programm zu Ende! Erst wenn alle Koroutinen terminieren, terminiert das Programm. Hier sehen Sie einen beispielhaften Verlauf:

   belinda$ tsleep
   : 20 Hi Adi
   : 10 etwas schneller
   : 25 Schluss!
   : x
   Main loop terminates...
    etwas schneller
    Hi Adi
    Schluss!
   belinda$

Die Quellen stehen als Shell-Archiv zur Verfügung.
WS 2000/01 || Entwicklung objekt-orientierter Bibliotheken || Beispiele

Andreas Borchert, 15. Januar 2001