pthread_sigmask( ) function is used to examine or change (or both) the calling thread's signal
mask, independent of the number of threads the process contains. The function shall be
equivalent to sigprocmask( ), but with the ability to be used in a thread of a multi-threaded
process.
The sigprocmask( ) function is used to examine or change (or both) the signal mask of the calling
thread of a single-threaded process.
The argument set points to a set of signals to be used to change the currently blocked set, unless the
argument is a null pointer.
The resulting set shall be the union of the current set and the signal set pointed to by set, if the value
of the argument how is SIG_BLOCK.
The resulting set shall be the signal set pointed to by set, if the value of the argument how is SIG_SETMASK
The resulting set shall be the intersection of the current set and the complement of the signal set
pointed to by set, if the value of the argument how is SIG_UNBLOCK
The previous mask shall be stored in the location pointed to by oset, if the argument oset is not a null
pointer.
The value of the argument how is not significant and the process's signal mask shall be unchanged, and
thus the call can be used to enquire about currently blocked signals, if the argument set is a null
pointer.
After the call to sigprocmask(), if there are any pending unblocked signals, at least one of those
signals shall be delivered before the call to sigprocmask() returns.
The system shall not allow the blocking of signals which cannot be ignored, and shall not cause an error
to be indicated.
If any of the SIGFPE, SIGILL, SIGSEGV, or SIGBUS signals are generated while they are blocked, and the
signal was not generated by the kill(), sigqueue() or raise()functions, the result is undefined.
The thread's signal mask shall not be changed, if sigprocmask( ) fails.
In a multi-threaded process, the use of the sigprocmask( ) function is unspecified.
pthread_sigmask( ) shall return 0, Upon successful completion; otherwise, it shall return the corresponding
error number.
sigprocmask( ) shall return 0, Upon successful completion; otherwise, it shall return -1
and errno shall be set to indicate the error, and the process' signal mask shall be unchanged.
An errno value of [EINVAL] shall be returned and the pthreadsigmask() function shall fail, if the
value of
the how argument is not equal to one of the defined values.
An errno value of [EINVAL] shall be returned and the sigprocmask() function shall fail, if the value of
the how argument is not equal to one of the defined values.
An error code of [EINTR] shall not be returned by the pthread_sigmask( ) function.