Bonjour,
je fais un programme qui parcour une arborecsence en largeur via des thread.
Voici mon code et mon probleme :

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);
          }
            .............
  }
........
}
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.
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.