Der Thread ist das Objekt der Ablaufplanung. Mehr ...
#include <thread/thread.h>


Öffentliche Methoden | |
| Thread (void *tos) | |
| Konstruktor. Mehr ... | |
| void | go () |
| Aktiviert den ersten Thread auf einem Prozessor. Mehr ... | |
| void | resume (Thread *next) |
| Wechsel von dem aktuell laufenden Thread zum nächsten. Mehr ... | |
| virtual void | action ()=0 |
| Methode, die als Thread ausgeführt werden soll. Mehr ... | |
| void | set_kill_flag () |
| Setzen des Kill-Flags. Thread wechselt in den Zustand sterbend. Wird nur für MPStuBS benötigt. Mehr ... | |
| void | reset_kill_flag () |
| Zurücksetzen des Kill-Flags. Thread ist damit gestorben. Wird nur für MPStuBS benötigt. Mehr ... | |
| bool | dying () |
| Abfragen des Kill-Flags. Nachschauen, ob der Thread gerade stirbt. Wird nur für MPStuBS benötigt. Mehr ... | |
Öffentliche Attribute | |
| QueueLink< Thread > | queue_link |
| Verkettungszeiger für Scheduler und Waitingroom. | |
Der Thread ist das Objekt der Ablaufplanung.
| Thread::Thread | ( | void * | tos | ) |
Konstruktor.
Initialisiert den Kontext mit Hilfe von toc_settle
| tos | Top of Stack, also die höchste Adresse des Speicherbereiches, der als Stack für diesen Thread fungieren soll. |
|
pure virtual |
Methode, die als Thread ausgeführt werden soll.
Abgeleitete Klassen können durch Überschreiben dieser Methode den Code angeben, der als Thread ausgeführt werden soll.
Implementiert in Application und KeyboardApplication.
|
inline |
Abfragen des Kill-Flags. Nachschauen, ob der Thread gerade stirbt. Wird nur für MPStuBS benötigt.
| void Thread::go | ( | ) |
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.
|
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.
| next | Zeiger auf den nächsten Thread, der laufen soll. |
|
inline |
Setzen des Kill-Flags. Thread wechselt in den Zustand sterbend. Wird nur für MPStuBS benötigt.