[c/posix] Qui Qu'a Threader? - Où l'on parle de thread!(et pas de Fréd)

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 :wink:

alors c’etait de la grosse bidouille :smiley:

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 :slight_smile: C’est pour attendre la fin d’un thread :slight_smile: