Dispatcher Klassenreferenz
Implementierung des Dispatchers.
Mehr ...
#include <dispatch.h>
Aufstellung aller Elemente
|
Öffentliche Methoden |
| Dispatcher () |
| Konstruktor.
|
Coroutine * | active () |
| Hiermit kann abgefragt werden, welche Koroutine gerade im Besitz des aktuellen Prozessors ist.
|
void | go (Coroutine &first) |
| Mit dieser Methode wird die Koroutine first im Life-Pointer des aktuellen Prozessores vermerkt und gestartet.
|
void | dispatch (Coroutine &next) |
| Diese Methode setzt den Life-Pointer des aktuellen Prozessors auf next und führt einen Koroutinenwechsel vom alten zum neuen Life-Pointer durch.
|
Ausführliche Beschreibung
Implementierung des Dispatchers.
Der Dispatcher verwaltet den Life-Pointer, der die jeweils aktive Koroutine angibt und führt die eigentlichen Prozesswechsel durch. In der Uniprozessorvariante wird nur ein einziger Life-Pointer benötigt, da lediglich ein Prozess auf einmal aktiv sein kann. Für die Mehrprozessorvariante wird hingegen für jede CPU ein eigener Life-Pointer benötigt.
Beschreibung der Konstruktoren und Destruktoren
Dispatcher::Dispatcher |
( |
|
) |
[inline] |
Konstruktor.
Der Konstruktor initialisiert den oder die Life-Pointer mit Null, um anzuzeigen, dass auf der jeweiligen CPU noch keine Koroutine bekannt ist.
Dokumentation der Elementfunktionen
Mit dieser Methode wird die Koroutine first im Life-Pointer des aktuellen Prozessores vermerkt und gestartet.
- Parameter:
-
| first | Erste auf dem aktuellen Prozessor zu startende Koroutine im System. |
void Dispatcher::dispatch |
( |
Coroutine & |
next |
) |
|
Diese Methode setzt den Life-Pointer des aktuellen Prozessors auf next und führt einen Koroutinenwechsel vom alten zum neuen Life-Pointer durch.
- Parameter:
-
| next | Nächste auszuführende Koroutine. |
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: