Provided by: manpages-fr-dev_4.28.0-2_all 

NOM
pthread_atfork — Enregistrer des gestionnaires d'appel à fork
BIBLIOTHÈQUE
Bibliothèque de threads POSIX (libpthread, -lpthread)
SYNOPSIS
#include <pthread.h>
int pthread_atfork(void (*prepare)(void), void (*parent)(void),
void (*child)(void));
DESCRIPTION
Le fonction pthread_atfork() enregistre les gestionnaires de fork qui doivent être exécutés quand fork(2)
est appelé par un des threads d'un processus. Les gestionnaires sont exécutés dans le contexte du thread
qui appelle fork(2).
Trois types de gestionnaires peuvent être enregistrés :
- prepare spécifie un gestionnaire qui est exécuté dans le processus parent avant le début du traitement
de fork(2).
- parent spécifie un gestionnaire qui est exécuté dans le processus parent après l'achèvement du
traitement de fork(2).
- child spécifie un gestionnaire qui est exécuté dans le processus enfant après l'achèvement du
traitement de fork(2).
N'importe lequel des trois arguments peut être NULL si aucun gestionnaire n'est nécessaire dans la phase
correspondante du traitement de fork(2).
VALEUR RENVOYÉE
pthread_atfork() renvoie zéro en cas de succès. En cas d'erreur, elle renvoie un numéro d'erreur.
pthread_atfork peut être appelée plusieurs fois par un processus pour enregistrer des gestionnaires
supplémentaires. Les gestionnaires de chaque phase sont appelés dans un ordre spécifié : les
gestionnaires prepare sont appelés en ordre inverse d'enregistrement, les gestionnaires parent et child
sont appelés dans l'ordre d'enregistrement.
ERREURS
ENOMEM Impossible d'allouer assez de mémoire pour enregistrer l'entrée de liste de gestionnaires de fork.
STANDARDS
POSIX.1-2008.
HISTORIQUE
POSIX.1-2001.
NOTES
Quand fork(2) est appelé dans processus multithreadé, seul le thread appelant est dupliqué dans le
processus enfant. L'objectif originel de pthread_atfork() était de permettre de renvoyer le processus
enfant dans un état cohérent. Par exemple, au moment de l'appel de fork(2), d'autres threads peuvent
avoir verrouillé des mutex qui sont visibles dans la mémoirede l'espace utilisateur dupliquée dans
l'enfant. Ce type de mutex ne devrait jamais être déverrouillé dans la mesure où les threads qui ont
placé les verrous ne sont pas dupliqués dans l'enfant. L'intention de pthread_atfork() était de fournir
un mécanisme selon lequel l'application (ou une bibliothèque) pouvait assurer que les mutex et autres
états de processus et de thread soient restaurés dans un état cohérent. En pratique, cette tâche est en
général trop difficile pour être réalisable.
Après qu'un fork(2) dans un processus multithreadé retourne dans l'enfant, l'enfant peut seulement
appeler des fonctions sûres du point de vue des signaux asynchrones (consultez signal-safety(7)) jusqu'au
moment où il appelle execve(2) pour exécuter un nouveau programme.
POSIX.1 spécifie que pthread_atfork() ne pourra échouer avec l'erreur EINTR.
VOIR AUSSI
fork(2), atexit(3), pthreads(7)
TRADUCTION
La traduction française de cette page de manuel a été créée par Alain Portal <aportal@univ-montp2.fr>,
Christophe Blaess <https://www.blaess.fr/christophe/>, David Prévot <david@tilapin.org>, Denis Barbier
<barbier@debian.org>, Florentin Duneau <fduneau@gmail.com>, François Micaux, Frédéric Hantrais
<fhantrais@gmail.com>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Jean-Philippe Guérard
<fevrier@tigreraye.org>, Julien Cristau <jcristau@debian.org>, Nicolas François
<nicolas.francois@centraliens.net>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Stéphan Rafin
<stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Thomas Blein <tblein@tblein.eu>,
Thomas Huriaux <thomas.huriaux@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 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.
Pages du manuel de Linux 6.9.1 2 mai 2024 pthread_atfork(3)