* sigproc.cc (wait_sig): Ensure that myself->getsigtodo array is flushed on a

__SIGFLUSH.  Christopher Faylor <cgf@redhat.com>
* exceptions.cc (_sigreturn): Handle nested signals without growing the stack.
This commit is contained in:
Christopher Faylor
2003-08-20 05:15:33 +00:00
parent 5f31e0f305
commit 6f6d673cc5
3 changed files with 43 additions and 18 deletions

View File

@ -1220,13 +1220,14 @@ __asm__ volatile ("\n\
.text \n\
_sigreturn: \n\
addl $4,%%esp # Remove argument \n\
movl %%esp,%%ebp \n\
addl $36,%%ebp \n\
call _set_process_mask@4 \n\
\n\
cmpl $0,%4 # Did a signal come in? \n\
jz 1f # No, if zero \n\
call _call_signal_handler_now@0 # yes handle the signal \n\
movl %2,%%eax \n\
movl %%esp,%%ebp \n\
movl %%eax,36(%%ebp) # Restore return address \n\
jmp 3f \n\
\n\
1: popl %%eax # saved errno \n\
testl %%eax,%%eax # Is it < 0 \n\
@ -1257,7 +1258,7 @@ _sigdelayed0: \n\
pushl %%ebx \n\
pushl %%eax \n\
pushl %6 # saved errno \n\
pushl %3 # oldmask \n\
3: pushl %3 # oldmask \n\
pushl %4 # signal argument \n\
pushl $_sigreturn \n\
\n\