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.

STANDARDS

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 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 <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]>, David Prévot <[email protected]>, Cédric Boutillier <[email protected]>, Frédéric Hantrais <[email protected]> et Jean-Philippe MENGUAL <[email protected]>
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 à [email protected]

Recommended readings

Pages related to restart_syscall you should read also:

Questions & Answers

Helpful answers and articles about restart_syscall you may found on these sites:
Stack Overflow Server Fault Super User Unix & Linux Ask Ubuntu Network Engineering DevOps Raspberry Pi Webmasters Google Search