
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.