pthread_atfork   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 14 décembre 2001
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
pthread_atfork - enregistre des gestionnaires à invoquer lors de l'appel à fork(2)  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <pthread.h>

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




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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).

L'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 (Last In First Out : dans l'ordre inverse de l'enregistrement) juste avant fork(2), alors que les gestionnaires parent et child sont appelés dans l'ordre FIFO (First In First Out : dans l'ordre d'enregistrement).

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




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
pthread_atfork() retourne 0 en cas de succès et un code d'erreur non nul en cas d'erreur.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
ENOMEM
Pas assez de mémoire disponible pour enregistrer les gestionnaires.
 



AUTEUR   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Xavier Leroy <Xavier DOT Leroy AT inria DOT fr>  



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
fork(2), pthread_mutex_lock(3), pthread_mutex_unlock(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Thierry Vignaud <tvignaud AT mandriva DOT com> en 2000 et révisée le 19 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 pthread_atfork ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
AUTEUR
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
ENOMEMERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:49:21, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional