Bonjour,
je fais un programme qui parcour une arborecsence en largeur via des thread.
Voici mon code et mon probleme :
Lorsque je fais l'appel à la fonction producteur sans utiliser le thread ca marche bien. Par contre lorsque je l'utilse en thread...le programme "sort" rendu à l'appel OPENDIR.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 int main(int argc ,char * argv[]) { . .... pthread_t prod_thread; //creation du produceur pthread_create(&prod_thread, NULL, producteur, arguments); } void* producteur(void* args) { ........... do { if(sommet(f) != NULL) { ....... //on recupere un noeud de l'arbre elementfr = (acopier *) malloc(sizeof(acopier)); elementfr = (acopier *) sommet(f); printf(" 2 ici : + %s\n", elementfr->cheminSource); repsource = opendir(elementfr->cheminSource); } ............. } ........ }
Il n'affiche pas de message d'erreur. il fait juste sortir...
J'ai l'impression qu'on peut pas faire d'appel systeme dans un thread !!! (??)
Est-ce que quelqu'un a une idée.
merci.
Partager