Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

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

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);

       Compiler et éditer les liens avec -pthreads.

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.

       The pthread_timedjoin_np()  function performs a join-with-timeout. If thread has  not  yet
       terminated,  then  the  call  blocks  until a maximum time, specified in abstime, measured
       against the CLOCK_REALTIME clock. If the timeout expires  before  thread  terminates,  the
       call  returns  an  error.  The  abstime  argument  is  a  structure of the following form,
       specifying an absolute time measured since the Epoch (see time(2)):

           struct timespec {
               time_t tv_sec;      /* Secondes */
               long   tv_nsec;     /* Nanosecondes */
           };

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()  can in addition fail with the following errors:

       EINVAL abstime value is invalid (tv_sec is less than 0 or tv_nsec is greater than 1e9).

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

       pthread_timedjoin_np() ne renvoie jamais d'erreur EINTR.

VERSIONS

       Ces fonctions ont été introduites dans la glibc dans sa version 2.3.3.

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 │
       └────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

CONFORMITÉ

       Ces fonctions sont des  extensions  GNU  non  standard ;  d'où  le  suffixe  « _np »  (non
       portable) dans leur nom.

BOGUES

       The  pthread_timedjoin_np()   function  measures time by internally calculating a relative
       sleep interval that is then measured against the  CLOCK_MONOTONIC  clock  instead  of  the
       CLOCK_REALTIME  clock. Consequently, the timeout is unaffected by discontinuous changes to
       the CLOCK_REALTIME clock.

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) {
               /* Handle error */
           }

           ts.tv_sec += 5;

           s = pthread_timedjoin_np(thread, NULL, &ts);
           if (s != 0) {
               /* Handle error */
           }

VOIR AUSSI

       clock_gettime(2), pthread_exit(3), pthread_join(3), pthreads(7)

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

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  ⟨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⟩.