Provided by: manpages-fr-dev_4.13-4_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().

VERSIONS

       L'appel système restart_syscall() existe depuis Linux 2.6.

CONFORMITÉ

       Cet appel système est spécifique à Linux.

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)

COLOPHON

       Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
       instructions  pour  signaler  des  anomalies et la dernière version de cette page peuvent être trouvées à
       l'adresse https://www.kernel.org/doc/man-pages/.

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.

Linux                                           21 décembre 2020                              RESTART_SYSCALL(2)