Manual Section... (2) - page: sigsuspend NAMEsigsuspend - wait
for a signal int sigsuspend(const sigset_t *mask); Feature Test
Macro Requirements for glibc (see feature_test_macros(7)):
DESCRIPTIONsigsuspend() temporarily replaces the signal mask of
the calling process with the mask given by mask 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 sigsuspend() does not
return. If the signal is caught, then sigsuspend() returns after
the signal handler returns, and the signal mask is restored to
the state before the call to sigsuspend(). RETURN
VALUEsigsuspend() always returns -1, normally with the error
EINTR. - mask points to memory which is not a valid part of the
process address space. - The call was interrupted by a signal.
Normally, sigsuspend() is used in conjunction with
sigprocmask(2) in order to prevent delivery of a signal during
the execution of a critical code section. The caller f