* sigproc.cc (wait_sig): Avoid infinite loop.

This commit is contained in:
Christopher Faylor 2003-08-22 01:07:01 +00:00
parent 346c0bf9fc
commit a9f7754462
2 changed files with 7 additions and 3 deletions

View File

@ -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>
* speclib: Reenable removal of temp files.

View File

@ -1166,10 +1166,10 @@ wait_sig (VOID *self)
* array looking for any unprocessed signals.
*/
pending_signals = false;
bool saw_failed_interrupt = false;
bool more_signals = false;
bool saw_failed_interrupt = false;
do
for (int sig = -__SIGOFFSET; sig < NSIG; sig++)
for (int sig = -__SIGOFFSET, more_signals = false; sig < NSIG; sig++)
{
LONG x = InterlockedDecrement (todo + sig);
if (x < 0)
@ -1232,7 +1232,7 @@ wait_sig (VOID *self)
goto out;
}
}
while (more_signals);
while (more_signals && !saw_failed_interrupt);
out:
/* Signal completion of signal handling depending on which semaphore