Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Übungen zu BS - Aufgaben (WS 2013/14)

thread.h-Dateireferenz

Enthält die Klasse Thread. Mehr ...

#include "machine/toc.h"
#include "meeting/waitingroom.h"
#include "object/chain.h"
Include-Abhängigkeitsdiagramm für thread.h:
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

Klassen

class  Thread

Funktionen

void kickoff (Thread *thread)
 Funktion zum Starten eines Threads.

Ausführliche Beschreibung

Enthält die Klasse Thread.

Dokumentation der Funktionen

void kickoff ( Thread thread)

Funktion zum Starten eines Threads.

Für die allererste Aktivierung eines Threads muss eine "Rücksprungadresse" zu einer Funktion bekannt sein, von der aus dann der Übergang von der C zur C++ Ebene erfolgen kann. Diese Funktion soll kickoff sein.

Aktivierung von kickoff Bei der Initialisierung eines Threads mit Hilfe der Funktion toc_settle() wird nicht nur die Struktur toc für den ersten Threadwechsel vorbereitet, sondern auch die Adresse der Funktion kickoff als Rücksprungadresse auf den Stack gelegt. Bei dem ersten Threadwechsel mit toc_switch wird daher an den Anfang von kickoff "zurück"gesprungen, womit die Ausführung beginnt.

Diese Methode realisiert den Sprung von der C Ebene zur C++ Ebene, indem sie ganz einfach die Methode action() des als Parameter vorgefundenen Threadobjektes thread aufruft.

Hinweis Da diese Funktion nicht wirklich aufgerufen, sondern nur durch eine geschickte Initialisierung des Stacks der Koroutine angesprungen wird, darf sie nie terminieren. Anderenfalls wuerde ein sinnloser Wert als Rücksprungadresse interpretiert werden und der Rechner abstürzen.

Parameter
threadThread, der gestartet werden soll.