Öffentliche Methoden |
| Customer (void *tos) |
| Konstruktor.
|
Waitingroom * | waiting_in () |
| Hiermit kann abgefragt werden, in welchem Waitingroom Objekt der Customer eingetragen ist.
|
void | waiting_in (Waitingroom *w) |
| Mit dieser Methode wird im Customer vermerkt, dass dieser derzeit im Waitingroom w auf ein Ereignis wartet.
|
| Entrant (void *tos) |
| Der Entrant Konstruktor gibt nur den Parameter tos an den Coroutinen Konstruktor weiter.
|
| Coroutine (void *tos) |
| Konstruktor.
|
void | go () |
| Aktiviert die erste Koroutine auf einem Prozessor.
|
void | resume (Coroutine &next) |
| Wechsel von der aktuell laufenden Koroutine zur nächsten.
|
virtual void | action ()=0 |
| Methode, die als Koroutine ausgeführt werden soll.
|
void | set_kill_flag () |
| Setzen des Kill-Flags. Prozess wechselt in den Zustand sterbend. Wird nur für MPStuBS benötigt.
|
void | reset_kill_flag () |
| Zurücksetzen des Kill-Flags. Prozess ist damit gestorben. Wird nur für MPStuBS benötigt.
|
bool | dying () |
| Abfragen des Kill-Flags. Nachschauen, ob der Prozess gerade stirbt. Wird nur für MPStuBS benötigt.
|
Ein Thread, der auf ein Ereignis warten kann.
Die Klasse Customer erweitert die Klasse Entrant um die Möglichkeit, ein Ereignis, auf das der betreffende Prozess wartet, zu vermerken und abzufragen.
Hiermit kann abgefragt werden, in welchem Waitingroom Objekt der Customer eingetragen ist.
Ein Rückgabewert von 0 soll bedeuten, dass der Prozess auf überhaupt kein Ereignis wartet, also entweder der aktuell laufende Prozess ist, auf der Ready-Liste des Schedulers steht, bereits terminiert ist oder noch gar nicht beim Scheduler angemeldet wurde.
- Rückgabe
- Zeiger auf das Waitingroom, in dem dieser Prozess wartet, oder 0.