DESCRIPTION

The td_thr_setsigpending()
and td_thr_setsigmask()
operations affect the signal state of the thread identified by th_p
.

td_thr_setsigpending()
sets the set of pending signals for thread th_p
to ti_sigpending
. The value of the libthread
-internal field that indicates whether a thread has any signal pending is set to ti_sigpending_flag
. To be consistent, ti_sigpending_flag
should be zero if and only if all of the bits in ti_sigpending
are zero.

td_thr_sigsetmask()
sets the signal mask of the thread th_p
as if the thread had set its own signal mask by way of thr_sigsetmask(3THR)
. The new signal mask is the value of ti_sigmask
.

There is no equivalent to the SIG_BLOCK
or SIG_UNBLOCK
operations of thr_sigsetmask(3THR)
, which mask or unmask specific signals without affecting the mask state of other signals. To block or unblock
specific signals, either stop the whole process, or the thread, if necessary, by td_thr_dbsuspend()
. Then determine the thread's existing signal mask by calling td_thr_get_info()
and reading the ti_sigmask
field of the td_thrinfo_t
structure returned. Modify it as desired, and set the new signal mask with td_thr_sigsetmask()
.