Man page - restart_syscall(2)

Packages contains this manual

Available languages:

en fr ja ru ro de

Manual

restart_syscall

НАИМЕНОВАНИЕ
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
СТАНДАРТЫ
ИСТОРИЯ
ПРИМЕЧАНИЯ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

restart_syscall - перезапускает системный вызов после прерывания сигналом останова

ОБЗОР

long restart_syscall(void);

Замечание : В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.

ОПИСАНИЕ

Системный вызов restart_syscall () предназначен для перезапуска некоторых системных вызовов после того, как процесс, остановленный сигналом (например, SIGSTOP или SIGTSTP ), продолжил выполнение после получения сигнала SIGCONT . Этот системный вызов создан только для внутреннего использования ядром.

restart_syscall () is used for restarting only those system calls that, when restarted, should adjust their time-related parameters—namely poll (2) (since Linux 2.6.24), nanosleep (2) (since Linux 2.6), clock_nanosleep (2) (since Linux 2.6), and futex (2), when employed with the FUTEX_WAIT (since Linux 2.6.22) and FUTEX_WAIT_BITSET (since Linux 2.6.31) operations. restart_syscall () restarts the interrupted system call with a time argument that is suitably adjusted to account for the time that has already elapsed (including the time where the process was stopped by a signal). Without the restart_syscall () mechanism, restarting these system calls would not correctly deduct the already elapsed time when the process continued execution.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Возвращаемым значением restart_syscall () является возвращаемое значение перезапущенного системного вызова.

ОШИБКИ

Значение errno устанавливается в соответствии с ошибками системного вызова, перезапущенного restart_systemcall ().

СТАНДАРТЫ

Linux.

ИСТОРИЯ

Linux 2.6.

ПРИМЕЧАНИЯ

Для этого системного вызова в glibc нет обёрточной функции, потому что он используется только ядром и не должен вызываться приложениями.

Ядро использует restart_syscall () для гарантии того, что когда системный вызов перезапускается после остановки процесса по сигналу и затем возобновляется по SIGCONT , время, которое процесс пробыл в остановленном состоянии будет учтено в интервале ожидания, заданного в первоначальном системном вызове. У системных вызовов, у которых есть аргумент интервала ожидания и которые автоматически перезапускаются после сигнала останова плюс SIGCONT , но которые не имеют встроенного механизма restart_syscall (2), после возобновления работы процесса время, которое процесс пробыл в остановленном состоянии, не учитывается в значении интервала ожидания. Весомыми примерам системных вызовов, которые подвержены этой проблеме, являются ppoll (2), select (2) и pselect (2).

Из пользовательского пространства работа restart_syscall (), в большинстве случаев, невидима: процессу, выполняющему системный вызов, который перезапускался, кажется, что системный вызов выполнился как обычно.

СМОТРИТЕ ТАКЖЕ

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

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) aereiae <aereiae@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Lockal <lockalsash@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Баринов Владимир, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .