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:
davidxu 2003-11-10 03:11:08 +00:00
parent 0139b2158b
commit 5e2cdf1a78

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