StuBS
Dispatcher Class Reference

The dispatcher dispatches threads and, by that, puts the scheduler's decisions into action. More...

#include <thread/dispatcher.h>

Inheritance diagram for Dispatcher:
[legend]

Static Public Member Functions

static Threadactive ()
 Returns the thread currently running on the CPU core calling this method. More...
 
static void go (Thread *first)
 This method stores first as life pointer for this CPU core and triggers the execution of first thread. More...
 
static void dispatch (Thread *next)
 Updates the life pointer to next and issues a thread change from the old to the new life pointer. More...
 

Detailed Description

The dispatcher dispatches threads and, by that, puts the scheduler's decisions into action.

The dispatcher manages the life pointer that refers to the currently active thread and performs the actual switching of processes. For single-core systems, a single life pointer is sufficient, as only a single thread can be active at any one time. On multi-core systems, every CPU core needs its own life pointer.

Member Function Documentation

◆ active()

static Thread * Dispatcher::active ( )
inlinestatic

Returns the thread currently running on the CPU core calling this method.

Todo:
Implement Method

◆ go()

void Dispatcher::go ( Thread first)
static

This method stores first as life pointer for this CPU core and triggers the execution of first thread.

Note
Only to be used for the first thread running on a CPU core.
Parameters
firstFirst thread to be executed on this CPU core.
Todo:
Implement Method

◆ dispatch()

void Dispatcher::dispatch ( Thread next)
static

Updates the life pointer to next and issues a thread change from the old to the new life pointer.

Parameters
nextNext thread to be executed.
Todo:
Implement Method

The documentation for this class was generated from the following files: