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

NOM

       pthread_tryjoin_np,  pthread_timedjoin_np  -  Essayer  de  fusionner  avec un thread ayant
       terminé son exécution

BIBLIOTHÈQUE

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

SYNOPSIS

       #define _GNU_SOURCE             /* Consultez feature_test_macros(7) */
       #include <pthread.h>

       int pthread_tryjoin_np(pthread_t thread, void **retval);
       int pthread_timedjoin_np(pthread_t thread, void **retval,
                                const struct timespec *abstime);

DESCRIPTION

       Ces fonctions opèrent de la même façon que pthread_join(3), à l'exception des  différences
       décrites dans cette page.

       La  fonction  pthread_tryjoin_np()  essaie  de fusionner avec le thread thread si cela est
       possible sans attendre et renvoie le code de retour du thread dans *retval. Si  le  thread
       ne   s'est   toujours   pas   terminé,  alors  au  lieu  d'être  bloquée  (comme  le  fait
       pthread_join(3)), l'appel renvoie une erreur.

       La fonction pthread_timedjoin_np() essaie de fusionner avec un thread avec une  limite  de
       temps.  Si  le  thread  ne s'est toujours pas terminé, alors l'appel est bloqué pendant un
       temps maximum de abstime mesuré par rapport à l'horloge CLOCK_REALTIME. Si le délai expire
       avant  que  thread ne se termine, l'appel renvoie une erreur. Le paramètre abstime est une
       structure timespec(3) qui indique un temps absolu mesuré depuis l'époque POSIX  (consultez
       time(2))

VALEUR RENVOYÉE

       En  cas de réussite, ces fonction renvoient 0 ; en cas d'erreur, elles renvoient un numéro
       d'erreur.

ERREURS

       Ces   fonction   peuvent   échouer   avec   les   mêmes   erreurs   que   pthread_join(3).
       pthread_tryjoin_np() peut de plus échouer avec l'erreur suivante :

       EBUSY  L'exécution du thread n'était pas terminée au moment de l'appel.

       pthread_timedjoin_np() peut également échouer avec les erreurs suivantes :

       EINVAL La  valeur abstime n'est pas valable (tv_sec est inférieure à 0 ou tv_nsec est plus
              grande que 1e9).

       ETIMEDOUT
              Le délai a expiré avant que thread ne se soit terminé.

       pthread_timedjoin_np() ne renvoie jamais d'erreur EINTR.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │pthread_tryjoin_np(), pthread_timedjoin_np()            │ Sécurité des threads │ MT-Safe │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       GNU ; d'où le suffixe « _np » (non portable) dans leur nom.

HISTORIQUE

       glibc 2.3.3.

BOGUES

       La fonction pthread_timedjoin_np() mesure le temps en calculant en interne  un  intervalle
       de sommeil relatif qui est alors mesuré par rapport à l'horloge CLOCK_MONOTONIC plutôt que
       par rappport à l'horloge CLOCK_REALTIME. En conséquence, le délai n'est  pas  affecté  par
       les modifications discontinues à l'horloge CLOCK_REALTIME.

EXEMPLES

       Le  code  suivant  attend  la fin d'exécution d'un thread pour fusionner pendant au plus 5
       seconde :

           struct timespec ts;
           int s;

           ...

           if (clock_gettime(CLOCK_REALTIME, &ts) == -1) {
               /* Gérer l'erreur */
           }

           ts.tv_sec += 5;

           s = pthread_timedjoin_np(thread, NULL, &ts);
           if (s != 0) {
               /* Gérer l'erreur */
           }

VOIR AUSSI

       clock_gettime(2), pthread_exit(3), pthread_join(3), timespec(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>,  Frédéric  Hantrais
       <fhantrais@gmail.com> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.