Prozess, der immer dann läuft, wenn eine CPU nichts zu tun hat.
Mehr ...
#include <idlethread.h>
Öffentliche Methoden |
| IdleThread (void *tos) |
void | action () |
| Methode, die als Koroutine ausgeführt werden soll.
|
| 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.
|
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.
|
Weitere Geerbte Elemente |
Chain * | next |
| next gibt das nächste Chain Element der Liste an.
|
Ausführliche Beschreibung
Prozess, der immer dann läuft, wenn eine CPU nichts zu tun hat.
In OOStuBS ist es nicht notwendig IdleThread zu verwenden. Eine Implementierung über einen einfachen Idle-Loop im Scheduler ist dort einfacher.
In MPStuBS hingegen vereinfacht die Verwendung von IdleThread die Behandlung von "däumchendrehenden" Prozessoren.
- Zu beachten
- Instanzen von IdleThread sollten nie in der Bereitliste des Schedulers auftauchen, sondern immer getrennt gehalten werden, da sie ja nur dann ausgeführt werden sollen, wenn kein normaler Thread mehr bereit ist.
Dokumentation der Elementfunktionen
void IdleThread::action |
( |
| ) |
|
|
inlinevirtual |
Methode, die als Koroutine ausgeführt werden soll.
Abgeleitete Klassen können durch Überschreiben dieser Methode den Code angeben, der als Koroutine ausgeführt werden soll.
Implementiert Coroutine.
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: