pthread lecteurs ecrivains.
Bonsoir,
J ai n lecteurs et 1 ecrivains.
l ecrivain ecrit dans des fichier une seul fois. Avant l ecriture, les lecteur ne peut pas lire, mais pres il peuvent lire sans avoir besoin d exclusion mutuelle.
J ai donc cree une structure comme ceci
Code:
1 2 3 4 5 6 7 8
|
typdef struct file
{
char *file_name; // nom du fichier
int is_ready; // permet de savoir si le fichier est pret a etre lu.
pthread_mutex_t mutex; // avoir acces au fichier de maniere exclusive.
pthread_cond_t cond;
} |
Le pseudo langage :
lecteurs :
Code:
1 2 3 4 5
|
- lock mutex
- si is_ready = 0
- unlock mutex.
-on lit le fichier. |
ecrivain:
Code:
1 2 3 4 5 6
|
- lock mutex
- On ecrit dans le fichier.
- is_ready = 1
- on reveille tous les lecteurs.
-unmock mutex. |
Je ne sais pas si c est la meilleur facon
De plus quand l ecrivain a fiit d ecrire, le mutex et la condition ne servent plus a rien. J aimerai avoir vos commentaire pour ameliorer ce code.
Merci.