Provided by: manpages-fr-dev_4.26.0-1_all bug

NOM

       pthread_join - Joindre un thread terminé

BIBLIOTHÈQUE

       Bibliothèque de threads POSIX (libpthread, -lpthread)

SYNOPSIS

       #include <pthread.h>

       int pthread_join(pthread_t thread, void **retval);

DESCRIPTION

       La  fonction pthread_join()  attend que le thread spécifié par thread se termine. Si ce thread s'est déjà
       terminé, pthread_join() revient tout de suite. Le thread spécifié par thread doit être joignable.

       Si retval n'est pas NULL, pthread_join() copie la valeur de  sortie  du  thread  cible  (c'est-à-dire  la
       valeur  que  le  thread  cible  a  fournie à pthread_exit(3)) dans l'emplacement pointé par retval. Si le
       thread cible est annulé, PTHREAD_CANCELED est placé dans l'emplacement pointé par retval

       Si plusieurs threads essaient simultanément de joindre le même thread, le résultat est  indéfini.  Si  le
       thread  appelant  pthread_join()  est annulé, le thread cible reste joignable (c'est-à-dire qu'il ne sera
       pas détaché).

VALEUR RENVOYÉE

       En cas de réussite, pthread_join() renvoie 0 ; en cas d'erreur, elle renvoie un numéro d'erreur.

ERREURS

       EDEADLK
              Un verrou perpétuel (deadlock) a été détecté, par exemple deux  threads  essaient  de  se  joindre
              mutuellement ; ou bien thread est aussi le thread appelant.

       EINVAL thread n'est pas un thread joignable.

       EINVAL Un autre thread attend déjà de joindre ce thread.

       ESRCH  Aucun fil d’exécution avec pour identifiant thread n'a pu être trouvé.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌──────────────────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │ InterfaceAttributValeur  │
       ├──────────────────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │ pthread_join()                                                       │ Sécurité des threads │ MT-Safe │
       └──────────────────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       POSIX.1-2001.

NOTES

       Après  le  succès  d'un  appel  à  pthread_join(), l'appelant est certain que le thread cible est achevé.
       L'appelant peut alors choisir de faire tout  le  nettoyage  requis  après  l'achèvement  du  thread  (par
       exemple, libérer la mémoire ou les autres ressources qui ont été allouées au thread cible).

       Joindre un thread qui avait préalablement été joint résulte en un comportement indéfini.

       Un  échec  à joindre un thread qui est joignable (c'est-à-dire non détaché) produit un « thread zombie ».
       Il faut l'éviter, car chaque thread zombie consomme des ressources du système,  et  si  trop  de  threads
       zombies s'accumulent, il ne sera plus possible de créer de nouveaux threads (ou de nouveaux processus).

       Il  n'existe  pas  d'analogue pthreads à waitpid(-1, &status, 0) pour joindre tout thread non terminé. Si
       vous pensez avoir besoin de cette fonctionnalité, vous devez probablement repenser la conception de votre
       application.

       Tous les threads dans un processus sont au même niveau : tout thread peut joindre tout  autre  thread  du
       processus.

EXEMPLES

       Consultez pthread_create(3).

VOIR AUSSI

       pthread_cancel(3),    pthread_create(3),   pthread_detach(3),   pthread_exit(3),   pthread_tryjoin_np(3),
       pthreads(7)

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org> et Frédéric Hantrais <fhantrais@gmail.com>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

Pages du manuel de Linux 6.9.1                     2 mai 2024                                    pthread_join(3)