Provided by: manpages-fr-dev_4.26.0-1_all bug

NOM

       restart_syscall - Redémarrer un appel système après qu'il a été interrompu par un signal d'arrêt

SYNOPSIS

       long restart_syscall(void);

       Note : il n'existe pas d'enveloppe pour cet appel système dans la glibc ; voir NOTES.

DESCRIPTION

       L'appel système restart_syscall() est utilisé pour redémarrer certains appels système lorsqu'un processus
       qui  a  été  arrêté  par  un  signal  (par  exemple SIGSTOP ou SIGTSTP) est ensuite relancé par un signal
       SIGCONT. Cet appel système est exclusivement destiné à un usage interne par le noyau.

       restart_syscall() est utilisé  pour  redémarrer  uniquement  les  appels  système  qui,  lorsqu'ils  sont
       redémarrés, doivent ajuster leurs paramètres temporels — c'est-à-dire poll(2) (à partir de Linux 2.6.24),
       nanosleep(2)  (à  partir de Linux 2.6), clock_nanosleep(2) (à partir de Linux 2.6) et futex(2), lorsqu'il
       est utilisé avec les opérations FUTEX_WAIT (à partir de 2.6.22) et FUTEX_WAIT_BITSET (à partir  de  Linux
       2.6.31).  restart_syscall()  redémarre  l'appel système interrompu avec un paramètre de temps ajusté pour
       prendre en compte le temps écoulé (comprenant le temps d’arrêt du  processus  par  le  signal).  Sans  le
       mécanisme  restart_syscall(),  l'estimation  du  temps écoulé pourrait ne pas être correctement effectuée
       lors du redémarrage de ces appels système.

VALEUR RENVOYÉE

       La valeur renvoyée par restart_syscall() est celle renvoyée par l'appel système qui est redémarré.

ERREURS

       errno est défini selon l'erreur avec la même valeur  que  celle  définie  par  l'appel  système  qui  est
       redémarré par restart_syscall().

STANDARDS

       Linux.

HISTORIQUE

       Linux 2.6.

NOTES

       Il  n'y  a  pas d'enrobage glibc pour cet appel système puisqu'il ne doit être appelé que par le noyau et
       jamais par une application.

       Le noyau utilise restart_syscall() pour s'assurer que quand un appel redémarre après que le processus ait
       été arrêté par un signal puis réveillé par un SIGCONT, le temps que le processus a passé arrêté soit pris
       en compte dans l'intervalle du délai indiqué dans l'appel système d'origine. Pour les appels système  qui
       prennent un paramètre de délai et redémarrent automatiquement après un signal d'arrêt et un SIGCONT, sans
       avoir  construit  le  mécanisme restart_syscall(), après la reprise de l'exécution du processus, le temps
       passé à l'arrêt par le processus n'est pas pris en compte dans la valeur de  délai.  Parmi  les  exemples
       remarquables d'appels système souffrant de ce problème, on trouve ppoll(2), select(2) et pselect(2).

       Depuis  l'espace  utilisateur, l'exécution de restart_syscall(2) est pratiquement transparente : du point
       de vue du processus auteur de l'appel système qui est redémarré, tout se passe comme si  l'appel  système
       s'exécutait et se relançait de façon habituelle.

VOIR AUSSI

       sigaction(2), sigreturn(2), signal(7)

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>,  François  Micaux,  Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,      Thomas      Huriaux      <thomas.huriaux@gmail.com>,     Nicolas     François
       <nicolas.francois@centraliens.net>,    Florentin    Duneau    <fduneau@gmail.com>,     Simon     Paillard
       <simon.paillard@resel.enst-bretagne.fr>,     Denis    Barbier    <barbier@debian.org>,    David    Prévot
       <david@tilapin.org>,    Cédric    Boutillier     <cedric.boutillier@gmail.com>,     Frédéric     Hantrais
       <fhantrais@gmail.com> et Jean-Philippe MENGUAL <jpmengual@debian.org>

       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                                 restart_syscall(2)