Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       pthread_cleanup_push_defer_np,  pthread_cleanup_pop_restore_np  - Empiler et dépiler les gestionnaires de
       nettoyage tout en préservant le mode d'annulation

SYNOPSIS

       #include <pthread.h>

       void pthread_cleanup_push_defer_np(void (*routine)(void *),
                                          void *arg);
       void pthread_cleanup_pop_restore_np(int execute);

       Compilez et effectuez l'édition des liens avec l'option -pthread.

DESCRIPTION

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

       Comme   pthread_cleanup_push(3),   pthread_cleanup_push_defer_np()   empile   routine  sur  la  pile  des
       gestionnaires de nettoyage du thread. De plus, elle sauvegarde le mode actuel d'annulation, et le  change
       en  « deferred »  (retardé),  consultez  pthread_setcanceltype(3).  Cela  garantit  que  le  nettoyage  à
       l'annulation sera appelé même si  le  mode  d'annulation  était  à  « asynchronous »  (asynchrone)  avant
       l'appel.

       Comme pthread_cleanup_pop(3), pthread_cleanup_pop_restore_np() dépile le gestionnaire de nettoyage depuis
       la  pile  des  gestionnaires de nettoyage du thread. De plus, elle remet le mode d'annulation à la valeur
       qu'il avait lors de l'appel à pthread_cleanup_push_defer_np() correspondant.

       L'appelant doit vérifier que les appels à ces fonctions sont appariés à l'intérieur de la même  fonction,
       et  au  même  niveau  d'imbriquement  lexical.  D'autres  restrictions  s'appliquent, comme expliqué dans
       pthread_cleanup_push(3).

       Cette séquence d'appels :

           pthread_cleanup_push_defer_np(routine, arg);
           pthread_cleanup_pop_restore_np(execute);

       est équivalente à (mais en plus court et plus efficace) :

           int oldtype;

           pthread_cleanup_push(routine, arg);
           pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, &oldtype);
           ...
           pthread_setcanceltype(oldtype, NULL);
           pthread_cleanup_pop(execute);

CONFORMITÉ

       Ces fonctions sont des extensions non standard GNU ; c'est la raison du suffixe  « _np »  (non  portable)
       dans leur nom.

VOIR AUSSI

       pthread_cancel(3), pthread_cleanup_push(3), pthread_setcancelstate(3), pthread_testcancel(3), pthreads(7)

COLOPHON

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

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Denis Barbier (2010).

       Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org>  ou  par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

Linux                                            4 décembre 2008                PTHREAD_CLEANUP_PUSH_DEFER_NP(3)