* sigproc.cc (wait_sig): Avoid infinite loop.
This commit is contained in:
parent
346c0bf9fc
commit
a9f7754462
|
@ -1,3 +1,7 @@
|
||||||
|
2003-08-21 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
|
* sigproc.cc (wait_sig): Avoid infinite loop.
|
||||||
|
|
||||||
2003-08-20 Christopher Faylor <cgf@redhat.com>
|
2003-08-20 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
* speclib: Reenable removal of temp files.
|
* speclib: Reenable removal of temp files.
|
||||||
|
|
|
@ -1166,10 +1166,10 @@ wait_sig (VOID *self)
|
||||||
* array looking for any unprocessed signals.
|
* array looking for any unprocessed signals.
|
||||||
*/
|
*/
|
||||||
pending_signals = false;
|
pending_signals = false;
|
||||||
bool saw_failed_interrupt = false;
|
|
||||||
bool more_signals = false;
|
bool more_signals = false;
|
||||||
|
bool saw_failed_interrupt = false;
|
||||||
do
|
do
|
||||||
for (int sig = -__SIGOFFSET; sig < NSIG; sig++)
|
for (int sig = -__SIGOFFSET, more_signals = false; sig < NSIG; sig++)
|
||||||
{
|
{
|
||||||
LONG x = InterlockedDecrement (todo + sig);
|
LONG x = InterlockedDecrement (todo + sig);
|
||||||
if (x < 0)
|
if (x < 0)
|
||||||
|
@ -1232,7 +1232,7 @@ wait_sig (VOID *self)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (more_signals);
|
while (more_signals && !saw_failed_interrupt);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
/* Signal completion of signal handling depending on which semaphore
|
/* Signal completion of signal handling depending on which semaphore
|
||||||
|
|
Loading…
Reference in New Issue