35 lines
1.5 KiB
C++
35 lines
1.5 KiB
C++
/*****************************************************************************
|
|
* *
|
|
* D I S P A T C H E R *
|
|
* *
|
|
*---------------------------------------------------------------------------*
|
|
* Beschreibung: Implementierung des Dispatchers. *
|
|
* Der Dispatcher verwaltet den 'active'-Pointer, der den *
|
|
* jeweils aktiven Thread angibt. Mit 'start()' wird der *
|
|
* 'active' Pointer initialisiert und der erste Thread ge- *
|
|
* startet, alle weiteren Kontextwechsel werden mit *
|
|
* 'dispatch()' ausgeloest. 'get_active()' liefert den *
|
|
* 'active' Pointer zurueck. *
|
|
* *
|
|
* Autor: Olaf Spinczyk, TU Dortmund *
|
|
*****************************************************************************/
|
|
#ifndef __dispatch_include__
|
|
#define __dispatch_include__
|
|
|
|
#include "kernel/threads/Thread.h"
|
|
|
|
class Dispatcher {
|
|
private:
|
|
Thread* active; // aktiver Thread
|
|
|
|
Dispatcher(const Dispatcher& copy) = delete; // Verhindere Kopieren
|
|
|
|
public:
|
|
Dispatcher() : active(0) {}
|
|
void start(Thread& first);
|
|
void dispatch(Thread& next);
|
|
Thread* get_active() { return active; }
|
|
};
|
|
|
|
#endif
|