Loading

NOM

       pthread_atfork  -  Enregistrer  des  gestionnaires  à  invoquer lors de
       l’appel à fork(2)

SYNOPSIS

       #include <pthread.h>

       int pthread_atfork(void (*prepare)(void),  void  (*parent)(void),  void
       (*child)(void));

       pthread_atfork()  enregistre  les  fonctions  à  appeler juste avant et
       juste  après  la  création  d’un  nouveau  processus  par  fork(2).  Le
       gestionnaire  prepare est appelé par le processus parent juste avant la
       création du nouveau processus. Le gestionnaire parent est appelé par le
       processus parent juste avant que fork(2) finisse. Le gestionnaire child
       est appelé par le processus fils juste avant la fin de l’appel fork(2).

       Un  ou  plusieurs des trois gestionnaires prepare, parent et child peut
       être affecté à NULL, ce qui  signifie  qu’aucun  gestionnaire  ne  sera
       appelé au moment correspondant.

       pthread_atfork  peut  être  appelée  plusieurs  fois  pour  enregistrer
       plusieurs ensembles de gestionnaires. Lors de l’appel  à  fork(2),  les
       gestionnaires  prepare  sont  appelés dans l’ordre LIFO (dernier ajouté
       avec  pthread_atfork,  premier  appelé  avant  fork),  alors  que   les
       gestionnaires  parent  et child sont appelés dans l’ordre FIFO (premier
       ajouté, premier appelé).

       Pour comprendre l’objectif de pthread_atfork(), rappelons  que  fork(2)
       copie toute l’image mémoire du processus, y compris ses mutex dans leur
       état de blocage courant, mais seulement le thread appelant : les autres
       threads  ne  s’exécutent  pas dans le processus fils. Les mutex ne sont
       pas utilisables après  le  fork()  et  doivent  être  initialisés  avec
       pthread_mutex_init()  dans  le  processus fils. C’est une limitation de
       l’implémentation actuelle  et  peut  être  ou  non  présente  dans  les
       prochaines versions.

VALEUR RENVOYÉE

       pthread_atfork()  retourne  0  en cas de succès et un code d’erreur non
       nul en cas d’erreur.

ERREURS

       ENOMEM Pas  assez  de   mémoire   disponible   pour   enregistrer   les
              gestionnaires.

AUTEUR

       Xavier Leroy <Xavier.Leroy@inria.fr>

VOIR AUSSI

       fork(2), pthread_mutex_lock(3), pthread_mutex_unlock(3).

TRADUCTION

       Cette  page  de  manuel a été traduite par Thierry Vignaud <tvignaud AT
       mandriva DOT com> en 2000 et  révisée  par  Alain  Portal  <aportal  AT
       univ-montp2  DOT  fr>  en  2006.   La  version présente dans Debian est
       maintenue par les membres de la liste <debian-l10n-french AT lists  DOT
       debian  DOT  org>.  Veuillez signaler toute erreur de traduction par un
       rapport de bogue sur le paquet manpages-fr-extra.

                                 LinuxThreads