restart_syscall(2)

NUME
restart_syscall - repornește un apel de sistem după ce a fost întrerupt de un semnal de oprire

SINOPSIS
long restart_syscall(void);

Notă: Nu există nicio funcție învăluitoare (wrapper) glibc pentru acest apel de sistem; a se vedea NOTE.

DESCRIERE
Apelul de sistem restart_syscall() este utilizat pentru a reporni anumite apeluri de sistem după ce un proces care a fost oprit de un semnal (de exemplu, SIGSTOP sau SIGTSTP) este reluat ulterior după primirea unui semnal SIGCONT. Acest apel de sistem este conceput numai pentru uz intern de către nucleu.

restart_syscall() este utilizat pentru a reporni numai acele apeluri de sistem care, atunci când sunt repornite, ar trebui să își ajusteze parametrii legați de timp—și anume poll(2) (începând cu Linux 2.6.24), nanosleep(2) (începând cu Linux 2.6.24), nanosleep(2) (începând cu Linux 2. 6), clock_nanosleep(2) (de la Linux 2.6) și futex(2), atunci când sunt utilizate cu operațiile FUTEX_WAIT ( începând cu Linux 2.6.22) și FUTEX_WAIT_BITSET (de la Linux 2.6.31). restart_syscall() repornește apelul de sistem întrerupt cu un argument de timp care este ajustat în mod corespunzător pentru a ține cont de timpul care s-a scurs deja (inclusiv timpul în care procesul a fost oprit de un semnal). Fără mecanismul restart_syscall(), repornirea acestor apeluri de sistem nu ar fi dedus corect timpul deja scurs atunci când procesul a continuat execuția.

VALOAREA RETURNATĂ
Valoarea de returnare a restart_syscall() este valoarea de returnare a apelului de sistem care este repornit.

ERORI-IEȘIRE
errno este configurată conform erorilor pentru orice apel de sistem care este repornit de restart_syscall().

STANDARDE
Linux.

ISTORIC
Linux 2.6.

NOTE
Nu există nici o funcție învăluitoare (wrapper) glibc pentru acest apel de sistem, deoarece este destinat a fi utilizat numai de către nucleu și nu ar trebui să fie apelat niciodată de către aplicații.

Nucleul utilizează restart_syscall() pentru a se asigura că, atunci când un apel de sistem este repornit după ce un proces a fost oprit de un semnal și apoi reluat de SIGCONT, timpul petrecut de proces în starea de oprire este luat în considerare în intervalul de timp specificat în apelul de sistem original. În cazul apelurilor de sistem care acceptă un argument de temporizare și care repornesc automat după un semnal de oprire plus SIGCONT, dar care nu au încorporat mecanismul restart_syscall(), atunci, după ce procesul își reia execuția, timpul pe care procesul l-a petrecut în starea de oprire nu este contabilizat în raport cu valoarea de temporizare. Exemple notabile de apeluri de sistem care suferă de această problemă sunt ppoll(2), select(2) și pselect(2).

Din spațiul utilizatorului, operațiunea restart_syscall() este în mare parte invizibilă: pentru procesul care a efectuat apelul de sistem care este repornit, apare ca și cum acel apel de sistem a fost executat și returnat în mod obișnuit.

CONSULTAȚI ȘI
sigaction(2), sigreturn(2), signal(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.