- manage thread signals for libc_db
cc [ flag... ] file... -lc_db [ library... ] #include <proc_service.h> #include <thread_db.h> td_err_e td_thr_setsigpending(const td_thrhandle_t * th_p, const uchar_ t ti_sigpending_flag, const sigset_t ti_sigmask;);
td_err_e td_thr_sigsetmask(const td_thrhandle_t *th_p, const sigset_t ti_sigmask);
The td_thr_setsigpending() and td_thr_setsigmask() functions affect the signal state of the thread identified by th_p.
The td_thr_setsigpending() function sets the set of pending signals for thread th_p to ti_sigpending. The value of the libc-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 0 if and only if all of the bits in ti_sigpending are 0.
The td_thr_sigsetmask() function sets the signal mask of the thread th_p as if the thread had set its own signal mask with thr_sigsetmask(3C). 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(3C), which mask or unmask specific signals without affecting the mask state of other signals. To block or unblock specific signals,
stop either the entire process or the thread with td_thr_dbsuspend(),
determine the thread's existing signal mask by calling td_thr_get_info(3C_DB),
modify the ti_sigmask member of the td_thrinfo_t structure as desired, and
set the new signal mask withtd_thr_sigsetmask().
The call completed successfully.
An invalid thread handle was passed in.
A call to one of the imported interface routines failed.
A libc_db internal error occurred.
See attributes(5) for description of the following attributes: