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

Interface de gestion des conditions d'attente
[Interface PHIL]

Ce module définit comment se bloquer ou réveiller dans une file d'attente. Plus de détails...

Composants

struct  PhilCond
 Descripteur de condition. Plus de détails...


Définitions des types

typedef PhilCond PhilCond
 Descripteur de condition.


Fonctions

int PhilCondInit (PhilCond *cond)
 Initialiser une condition.

int PhilCondDestroy (PhilCond *cond)
 Destruction de la condition.

int PhilCondSignal (PhilCond *cond)
 Signaler une condition.

int PhilCondBroadcast (PhilCond *cond)
 Signaler une condition.

int PhilCondWait (PhilCond *cond, PhilMutex *mutex)
 Attendre une condition.

int PhilCondTimedWait (PhilCond *cond, PhilMutex *mutex, long int us)
 Attendre une condition pour une durée bornée.

long int PhilNow ()
 Gestion de l'heure.


Description détaillée

Pour savoir comment l'utiliser, voir Un exemple d'utilisation : le sémaphore Les N philosophes


Documentation du type

typedef struct PhilCond PhilCond
 

L'identité d'une condition est un pointeur sur son descripteur


Documentation de la fonction

int PhilCondBroadcast PhilCond   cond
 

Paramètres:
cond  adresse de condition
Renvoie :
un code d'erreur :
  • 0 OK
  • 1 condition inexistante ou non initialisée
Tous les threads en attente sont réveillés.

int PhilCondDestroy PhilCond   cond
 

Paramètres:
cond  adresse de la condition
Renvoie :
un code d'erreur :
  • 0 OK
  • 1 la condition est inexistante ou non initialisée
  • 2 des threads attendaient sur la condition au moment de la destruction
S'il y a des threads en attente, ils sont réveillés et la destruction leur est signalée.

int PhilCondInit PhilCond   cond
 

Paramètres:
cond  adresse du condition
Renvoie :
0 OK 1 condition inexistante

int PhilCondSignal PhilCond   cond
 

Paramètres:
cond  adresse de condition
Renvoie :
un code d'erreur :
  • 0 OK
  • 1 condition inexistante ou non initialisée
Le thread en attente le + prioritaire est réveillé.

int PhilCondTimedWait PhilCond   cond,
PhilMutex   mutex,
long int    us
 

Paramètres:
cond  adresse du condition
mutex  verrou à libérer au blocage et à reprendre au réveil
us  durée maximum d'attente en microsecondes
Renvoie :
un code d'erreur :
  • 0 OK
  • 1 la condition est inexistante ou non initialisée
  • 2 la condition est détruite ( PhilCondDestroy() ) durant l'attente
  • 3 durée limite atteinte
On peut sortir de l'attente à la suite d'un PhilCondSignal(), un PhilCondBroadcast(), d'une destruction de la condition PhilCondDestroy() ou de l'épuisement du délai.

int PhilCondWait PhilCond   cond,
PhilMutex   mutex
 

Paramètres:
cond  adresse de condition
mutex  verrou à libérer au blocage et à reprendre au réveil
Renvoie :
un code d'erreur :
  • 0 OK
  • 1 la condition est inexistante ou non initialisée
  • 2 la condition est détruite ( PhilCondDestroy() ) durant l'attente
On peut sortir de l'attente à la suite d'un PhilCondSignal(), un PhilCondBroadcast() ou une destruction de la condition PhilCondDestroy().

long int PhilNow  
 

Renvoie :
la date en microseconde
L'origine des temps sera le démarrage du programme PHIL


Généré le Thu Jan 15 15:49:02 2004 par doxygen1.2.17