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 |