* exceptions.cc (sigdelayed): Move declaration to sigproc.h.

* sigproc.h (sigdelayed): Make symbol globally available.
* gendef (sigdelayed): Specifically zero incyg and stacklock.
* signal.cc (sigwaitinfo): Lock _my_tls and try harder to clean up signal
information.
This commit is contained in:
Christopher Faylor
2012-08-15 16:35:00 +00:00
parent 0123506d2d
commit d57a4725b1
5 changed files with 18 additions and 5 deletions

View File

@@ -196,8 +196,9 @@ _sigdelayed:
xorl %ebp,%ebp
xchgl %ebp,-4(%eax) # get return address from signal stack
xchgl %ebp,28(%esp) # store real return address
leave: decl $tls::incyg(%ebx)
decl $tls::stacklock(%ebx) # unlock
leave: xorl %eax,%eax
movl %eax,$tls::incyg(%ebx)
movl %eax,$tls::stacklock(%ebx) # unlock
popl %eax
popl %ebx