Bonjour, je suis en train de constater que j'ai un petit soucis de synchro entre d'une part un thread principal qui lance trois threads: scheduler, affichage et keyboard...
Ces threads sont censés fonctionner en boucle jusqu'à ce qu'une valeur bascule à faux.
Jusqu'à présent tout allait bien, je faisais un pthread_join() sur le thread scheduler (qui dans mon protocole devrait être le dernier à quitter) dans la fonction principale et puis je quittais le programme sans soucis.
Le thread keyboard, affichage et scheduler se terminaient avec un pthread_exit() sans soucis.
Maintenant ce que j'observe c'est que le pthread_join() semble rester bloqué ad vitam eternam... du coup mon programme ne quitte plus et je suis obligé de le killer...
Je vais de toutes façons recourir aux sémaphores mais je voulais une explication sur le fait que, tout d'un coup, alors que je n'ai jamais ajouté que des instructions de "log" (basé sur fwrite) le pthread_join() et le pthread_exit() n'ont plus l'air de communiquer ?
Merci de perdre votre temps à essayer d'éclaircir des zones d'ombre...
Partager