Page principale   Modules   Liste des composants   Liste des fichiers   Composants   Déclarations  

Référence du fichier thread.c

Implantation de la gestion des threads. Plus de détails...

#include "error.h"
#include "thread.h"
#include "mask.h"
#include "interrupt.h"
#include "countdown.h"
#include "contextswitch.h"
#include "Cstack.h"
#include "mem.h"
#include <errno.h>

Composants

struct  FredThreadDesc
 Descripteur de threads. Plus de détails...


Définitions des types

typedef FredThreadDesc FredThreadDesc
 Descripteur de threads.


Fonctions

void * leonCode (void *x)
 Le code du nettoyeur leon.

void LeonInit ()
 Initialisation de leon le nettoyeur.

void * watchDogCode (void *x)
 Le code du chien de garde watchdog.

void WatchDogInit ()
 Initialisation du chien de garde watchdog.

void QuantumHandler (int i)
 Traitement d'interruption de fin de quantum.

void TimeSharingInit (long int uS)
 Initialisation du temps partagé.

void FredThreadSuspend (FredQueue *q)
 Suspendre le thread courant dans une file.

void FredThreadWakeUp (FredQueue *q)
 Réveille un thread bloqué.

void FredThreadHarness ()
 Code initial des threads.

FredThread FredThreadSpawn (int stacksz, FredRunnable function, void *arg, void **resref)
 Création et lancement d'un thread.

void FredThreadExit (void *res)
 Terminaison immédiate du thread courant.

void FredThreadYield ()
 Le thread courant passe la main à un autre thread.

FredThread FredThreadCurrent ()
 Rend l'identité du thread courant.

void MainThreadInit ()
 Initialisation du pseudo thread principal.

void FredInitialize ()
 Initialisation de FRED.

void FredWaitTerminate ()
 Attente de fin d'exécution de tous les threads créés.

void FredAbort (char *mess)
 Arrêt brutal du programme et impression d'un message d'erreur.


Variables

int volatile nbFredThreads
 Compteur du nombre de threads créés non terminés.

FredThread current
 Le thread actif.

FredQueue readyQ
 File d'attente des threads prêts.

FredQueue deadQ
 File d'attente des threads morts dont la pile est à libérer (réservée à leon le nettoyeur) Un thread terminant s'inscrit dans cette file et réveille leon s'il n'est pas déja réveillé ( cf leonCode() ).

FredThread leon
 Le nettoyeur leon.

FredQueue leonQ
 File d'attente de leon.

FredQueue endQ
 File d'attente de terminaison (réservée au mainThread ).

FredThread mainThread
 Le thread associé à la procédure main().

FredThreadDesc mainThreadBlock
 Descripeur du thread associé à la procédure main().

FredThread watchdog
 Thread chien de garde.

long int quantum
 Valeur du quantum en microseconde.


Description détaillée


Généré le Mon Jan 5 16:22:06 2004 par doxygen1.2.17