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

Interface d'exclusion mutuelle
[Interface PHIL]

Ce module définit comment créer des verrous, les prendre ou les libérer. Plus de détails...

Composants

struct  PhilMutex
 Descripteur du verrou. Plus de détails...


Définitions des types

typedef PhilMutex PhilMutex
 Descripteur du verrou.


Fonctions

int PhilMutexInit (PhilMutex *verrou)
 Initialiser un verrou.

int PhilMutexDestroy (PhilMutex *verrou)
 Destruction du verrou.

int PhilMutexLock (PhilMutex *verrou)
 Prendre le verrou.

int PhilMutexTryLock (PhilMutex *verrou)
 Essai de fermeture du verrou.

int PhilMutexUnlock (PhilMutex *verrou)
 Ouverture du verrou.


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 PhilMutex PhilMutex
 

L'identité d'un verrou est un pointeur sur son descripteur


Documentation de la fonction

int PhilMutexDestroy PhilMutex   verrou
 

Paramètres:
verrou  adresse du verrou
Renvoie :
un code d'erreur :
  • 0 OK
  • 1 le verrou est inexistant ou non initialisé
  • 2 Le thread n'est pas le propriétaire du verrou
  • 3 des threads attendent le verrou.
On ne peut détruire qu'un verrou dont on est propriétaire. S'il y a des threads en attente, ils sont réveillés et la destruction leur est signalée.

int PhilMutexInit PhilMutex   verrou
 

Paramètres:
verrou  adresse du verrou
Renvoie :
0 OK 1 verrou inexistant (verrou==0)

int PhilMutexLock PhilMutex   verrou
 

Paramètres:
verrou  adresse du verrou
Renvoie :
un code d'erreur :
  • 0 OK
  • 1 le verrou est inexistant ou non initialisé
  • 2 le verrou a été détruit ( PhilMutexDestroy() ) durant l'attente
Le verrou peut se verrouiller de façon récursive.Il est alloué au thread + prioritaire qui devient propriétaire.

int PhilMutexTryLock PhilMutex   verrou
 

Paramètres:
verrou  adresse du verrou
Renvoie :
un code d'erreur :
  • 0 OK verrou fermé
  • 1 le verrou est inexistant ou non initialisé
  • 2 echec de fermeture
Le verrou peut se verrouiller de façon récursive.Il est alloué au thread + prioritaire qui devient propriétaire. Il n'y a jamais blocage.

int PhilMutexUnlock PhilMutex   verrou
 

Paramètres:
verrou  adresse du verrou
Renvoie :
un code d'erreur :
  • 0 OK
  • 1 le verrou est inexistant ou non initialisé
  • 2 Le thread n'est pas le propriétaire du verrou
Comme le verrou peut être verrouillé de façon récursive, il nécessite le même nombre de déverrouillages que de verrouillages pour être ouvert. Par ailleurs, on ne peut déverrouiller qu'un verrou dont on est propriétaire.


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