Oyo
Dans les threads, et en particulier leur création, je remarque un truc qui me titille, qui m’agace : mais c’est quoi ce void * que l’on retourne? hé ?
http://www.rt.com/man/pthread_create.3.html
A bon entendeur, je renvoie NULL par défaut mais bref, j’aimerai bien savoir à quoi il sert car je suppose que c’est pas là pour rien :o
tu parles de la fonction à passer en parametre qui renvoie un type void * ?
vu que la fonction ne connait pas d’avance ta fonction et qu’elle ne sait pas ce qu’elle eut renvoyer, c’est normal de mettre void*
tu peux eventuellment récupérer une valeur retour en faisant ds ta fonction appellée un pthread_exit(valeur_retour)
C’est juste un pointeur sur le code de retour permettant ainsi de gérer les exceptions. (cf exitstatus dans la struct pthread_t)
jeanguy>un thread ne doit, par définition, rien renvoyer mais doit appeler pthread_exit ou un code de valeur pour arrêter le thread de manière implicite
alors c’etait de la grosse bidouille
on passait un valeur retour via pthread_exit qui etait donc récupéré par le programme créateur du thread
Humpf, pas encore utiliser pthread_exit (j’ai 1 journée pour… !)
pthread_exit s’utilise (par convention plus que par obligation) dans le thread où tu devrais avoir une boucle infinie ( while thread_running { […] }; pthread_exit(NULL); )
Pour la synchro, on utilise pthread_join (attente de la fin d’un thread).
je vois C’est pour attendre la fin d’un thread