restart_syscall(2) System Calls Manual restart_syscall(2)
NOM
restart_syscall - Redemarrer un appel systeme apres qu'il a ete
interrompu par un signal d'arret
SYNOPSIS
long restart_syscall(void);
Note : il n'existe pas d'enveloppe pour cet appel systeme dans la
glibc ; voir NOTES.
DESCRIPTION
L'appel systeme restart_syscall() est utilise pour redemarrer certains
appels systeme lorsqu'un processus qui a ete arrete par un signal (par
exemple SIGSTOP ou SIGTSTP) est ensuite relance par un signal SIGCONT.
Cet appel systeme est exclusivement destine a un usage interne par le
noyau.
restart_syscall() est utilise pour redemarrer uniquement les appels
systeme qui, lorsqu'ils sont redemarres, doivent ajuster leurs
parametres temporels -- c'est-a-dire poll(2) (a partir de Linux
2.6.24), nanosleep(2) (a partir de Linux 2.6), clock_nanosleep(2) (a
partir de Linux 2.6) et futex(2), lorsqu'il est utilise avec les
operations FUTEX_WAIT (a partir de 2.6.22) et FUTEX_WAIT_BITSET (a
partir de Linux 2.6.31). restart_syscall() redemarre l'appel systeme
interrompu avec un parametre de temps ajuste pour prendre en compte le
temps ecoule (comprenant le temps d'arret du processus par le signal).
Sans le mecanisme restart_syscall(), l'estimation du temps ecoule
pourrait ne pas etre correctement effectuee lors du redemarrage de ces
appels systeme.
VALEUR RENVOYEE
La valeur renvoyee par restart_syscall() est celle renvoyee par l'appel
systeme qui est redemarre.
ERREURS
errno est defini selon l'erreur avec la meme valeur que celle definie
par l'appel systeme qui est redemarre par restart_syscall().
STANDARDS
Linux.
HISTORIQUE
Linux 2.6.
NOTES
Il n'y a pas d'enrobage glibc pour cet appel systeme puisqu'il ne doit
etre appele que par le noyau et jamais par une application.
Le noyau utilise restart_syscall() pour s'assurer que quand un appel
redemarre apres que le processus ait ete arrete par un signal puis
reveille par un SIGCONT, le temps que le processus a passe arrete soit
pris en compte dans l'intervalle du delai indique dans l'appel systeme
d'origine. Pour les appels systeme qui prennent un parametre de delai
et redemarrent automatiquement apres un signal d'arret et un SIGCONT,
sans avoir construit le mecanisme restart_syscall(), apres la reprise
de l'execution du processus, le temps passe a l'arret par le processus
n'est pas pris en compte dans la valeur de delai. Parmi les exemples
remarquables d'appels systeme souffrant de ce probleme, on trouve
ppoll(2), select(2) et pselect(2).
Depuis l'espace utilisateur, l'execution de restart_syscall(2) est
pratiquement transparente : du point de vue du processus auteur de
l'appel systeme qui est redemarre, tout se passe comme si l'appel
systeme s'executait et se relancait de facon habituelle.
VOIR AUSSI
sigaction(2), sigreturn(2), signal(7)
TRADUCTION
La traduction francaise de cette page de manuel a ete creee par
Christophe Blaess , Stephan Rafin
, Thierry Vignaud ,
Francois Micaux, Alain Portal , Jean-Philippe
Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas
Huriaux , Nicolas Francois
, Florentin Duneau
, Simon Paillard , Denis Barbier , David Prevot
, Cedric Boutillier ,
Frederic Hantrais et Jean-Philippe MENGUAL
Cette traduction est une documentation libre ; veuillez vous reporter a
la GNU General Public License version 3
concernant les conditions
de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE.
Si vous decouvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message a .
Pages du manuel de Linux 6.9.1 2 mai 2024 restart_syscall(2)