If a thread masks all its signal, in cursig(), no signal will be exchanged

with debugger, so testing P_TRACED in SIGPENDING is useless. This test also
is the culprit which causes lots of 'failed to set signal flags properly for
 ast()' to be printed on console which is just a false complaint.
This commit is contained in:
David Xu 2003-11-10 03:11:08 +00:00
parent 71edba1fe8
commit 73510b7ce5

View file

@ -215,8 +215,7 @@ typedef enum sigtarget_enum { SIGTARGET_P, SIGTARGET_TD } sigtarget_t;
/* Return nonzero if process p has an unmasked pending signal. */
#define SIGPENDING(td) \
(!SIGISEMPTY((td)->td_siglist) && \
(!sigsetmasked(&(td)->td_siglist, &(td)->td_sigmask) || \
(td)->td_proc->p_flag & P_TRACED))
!sigsetmasked(&(td)->td_siglist, &(td)->td_sigmask))
/*
* Return the value of the pseudo-expression ((*set & ~*mask) != 0). This