int sigsuspend(const sigset_t *mask);
This syscall temporarily replaces the signal mask of the calling with the given mask and then suspends the process until delivery of a signal whose action is to invoke a signal handler or to terminate a process. This syscall will return after the handling of the awaited signal.
This syscall always returns -1
, with the errno:
EINTR
The syscall was interrupted by a signal, this is basically a success return, since this is what we wanted!