The current signal mask of the calling thread shall be replaced
with the set of signals pointed to by sigmask, the calling thread
will then be suspended until delivery of a signal whose action
is either to execute a signal-catching function or to terminate
the process.
Any other signals that may have been
pending on the process shall not become pending on the thread.
sigsuspend shall never return if the action is to terminate the process.
sigsuspend( ) shall return after the signal-catching
function returns, with the signal mask restored
to the set that existed prior to the sigsuspend()
call, if the action is to execute a signal-catching function.
The system shall enforce, without an error being indicated,
not being able to block signals that cannot be ignored.
sigsuspend() suspends thread execution indefinitely, and therefore there is no
successful completion return value. The value of -1 shall be
returned and errno set to indicate the error in case of unsuccessful completion.
If a signal is caught by the calling process
and control is returned from the signal-catching function,
the sigsuspend( ) function shall fail if and set errno to EINTR.