Man page - pthread_atfork(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

pthread_atfork

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
VOIR AUSSI
TRADUCTION

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 .