* sigproc.cc (wait_sig): Make sure that SIGCHLD is handled regardless of
whether a signal is queued.
This commit is contained in:
parent
ff9f5c8330
commit
85427a949a
|
@ -1,3 +1,8 @@
|
|||
2004-03-26 Christopher Faylor <cgf@redhat.com>
|
||||
|
||||
* sigproc.cc (wait_sig): Make sure that SIGCHLD is handled regardless
|
||||
of whether a signal is queued.
|
||||
|
||||
2004-03-26 Christopher Faylor <cgf@redhat.com>
|
||||
|
||||
* sigproc.cc (wait_sig): Report if not trying to send signal due to
|
||||
|
|
|
@ -1162,19 +1162,22 @@ wait_sig (VOID *self)
|
|||
default:
|
||||
if (pack.si.si_signo < 0)
|
||||
sig_clear (-pack.si.si_signo);
|
||||
else if (sigq.sigs[pack.si.si_signo].si.si_signo)
|
||||
sigproc_printf ("sig %d already queued", pack.si.si_signo);
|
||||
else
|
||||
{
|
||||
int sig = pack.si.si_signo;
|
||||
int sigres = pack.process ();
|
||||
if (sigres <= 0)
|
||||
if (sigq.sigs[sig].si.si_signo)
|
||||
sigproc_printf ("sig %d already queued", pack.si.si_signo);
|
||||
else
|
||||
{
|
||||
int sigres = pack.process ();
|
||||
if (sigres <= 0)
|
||||
{
|
||||
#ifdef DEBUGGING2
|
||||
if (!sigres)
|
||||
system_printf ("Failed to arm signal %d from pid %d", pack.sig, pack.pid);
|
||||
if (!sigres)
|
||||
system_printf ("Failed to arm signal %d from pid %d", pack.sig, pack.pid);
|
||||
#endif
|
||||
sigq.add (pack); // FIXME: Shouldn't add this in !sh condition
|
||||
sigq.add (pack); // FIXME: Shouldn't add this in !sh condition
|
||||
}
|
||||
}
|
||||
if (sig == SIGCHLD)
|
||||
proc_subproc (PROC_CLEARWAIT, 0);
|
||||
|
|
Loading…
Reference in New Issue