sys_sigsuspend  [arch/i386/kernel/signal.c]


Temporarily replaces the signal mask of the calling process with the mask given by edx and then suspends the process until delivery of a signal whose action is to invoke a signal handler or to terminate a process.

If the signal terminates the process, then assessing does not return. If the signal is caught, then sys_sigsuspend returns after the signal handler returns, and the signal mask is restored to the state before the call to sys_sigsuspend.

Normally, sys_sigsuspend is used in conjunction with sys_sigprocmask in order to prevent delivery of a signal during the execution of a critical code section. The caller first blocks the signals with sys_sigprocmask. When the critical code has completed, the caller then waits for the signals by calling sys_sigsuspend with the signal mask that was returned by sys_sigprocmask.

Arguments

eax 72
ebx Currently unused.
ecx Currently unused.
edx Signal mask. It is not possible to block SIGKILL or SIGSTOP; specifying these signals in edx, has no effect on the process's signal mask.

Return values

Return value is always -ERESTARTNOHAND.

Remarks

n/a

Compatibility

n/a