Öffentliche Methoden |
| | Thread (void *tos) |
| | Konstruktor.
|
| void | go () |
| | Aktiviert den ersten Thread auf einem Prozessor.
|
| void | resume (Thread *next) |
| | Wechsel von dem aktuell laufenden Thread zum nächsten.
|
| virtual void | action ()=0 |
| | Methode, die als Thread ausgeführt werden soll.
|
| void | set_kill_flag () |
| | Setzen des Kill-Flags. Thread wechselt in den Zustand sterbend. Wird nur für MPStuBS benötigt.
|
| void | reset_kill_flag () |
| | Zurücksetzen des Kill-Flags. Thread ist damit gestorben. Wird nur für MPStuBS benötigt.
|
| bool | dying () |
| | Abfragen des Kill-Flags. Nachschauen, ob der Thread gerade stirbt. Wird nur für MPStuBS benötigt.
|
| Waitingroom * | waiting_in () |
| | Hiermit kann abgefragt werden, in welchem Waitingroom Objekt der Thread eingetragen ist.
|
| void | waiting_in (Waitingroom *w) |
| | Mit dieser Methode wird im Thread vermerkt, dass dieser derzeit im Waitingroom w auf ein Ereignis wartet.
|
| Thread * | getnext () |
| | Gibt das nächste Element in der Liste zurück (read-only-Zugriff).
|
Beschreibung der Konstruktoren und Destruktoren
| Thread::Thread |
( |
void * |
tos | ) |
|
Konstruktor.
Initialisiert den Kontext mit Hilfe von toc_settle
- Parameter
-
| tos | Top of Stack, also die höchste Adresse des Speicherbereiches, der als Stack für diesen Thread fungieren soll. |
Dokumentation der Elementfunktionen
| virtual void Thread::action |
( |
| ) |
|
|
pure virtual |
Abfragen des Kill-Flags. Nachschauen, ob der Thread gerade stirbt. Wird nur für MPStuBS benötigt.
Aktiviert den ersten Thread auf einem Prozessor.
Durch den Aufruf von Thread::go() wird der erste Thread auf dem jeweiligen Prozessor gestartet. Alle weiteren Threadwechsel sollen dann mit Hilfe der Methode Thread::resume() ausgeführt werden.
| void Thread::reset_kill_flag |
( |
| ) |
|
|
inline |
Zurücksetzen des Kill-Flags. Thread ist damit gestorben. Wird nur für MPStuBS benötigt.
| void Thread::resume |
( |
Thread * |
next | ) |
|
Wechsel von dem aktuell laufenden Thread zum nächsten.
Die aktuelle Belegung der nicht-flüchtigen Register wird in dem toc Element gesichert und durch die Werte von next (dem toc Element des nächsten Threads) ersetzt.
- Parameter
-
| next | Zeiger auf den nächsten Thread, der laufen soll. |
| void Thread::set_kill_flag |
( |
| ) |
|
|
inline |
Setzen des Kill-Flags. Thread wechselt in den Zustand sterbend. Wird nur für MPStuBS benötigt.
Hiermit kann abgefragt werden, in welchem Waitingroom Objekt der Thread eingetragen ist.
Ein Rückgabewert von 0 soll bedeuten, dass der Thread auf überhaupt kein Ereignis wartet, also entweder der aktuell laufende Thread 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 Thread wartet, oder 0.
Mit dieser Methode wird im Thread vermerkt, dass dieser derzeit im Waitingroom w auf ein Ereignis wartet.
- Parameter
-
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: