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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
- lock mutex
- si is_ready = 0
- unlock mutex.
-on lit le fichier.

ecrivain:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.