diff options
author | Christopher Faylor <me@cgf.cx> | 2013-08-30 15:44:57 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2013-08-30 15:44:57 +0000 |
commit | c5abf768f9d9cacdddcecdc20b366513cbf91b8c (patch) | |
tree | 539af1c0673c0ff28a78f7b8416bd29d78248e0a /winsup/cygwin/sigproc.cc | |
parent | 6585330779f88deedd9d215bd7c15b534f430d4a (diff) | |
download | cygnal-c5abf768f9d9cacdddcecdc20b366513cbf91b8c.tar.gz cygnal-c5abf768f9d9cacdddcecdc20b366513cbf91b8c.tar.bz2 cygnal-c5abf768f9d9cacdddcecdc20b366513cbf91b8c.zip |
* sigproc.cc (pending_signals::add): Properly maintain linked list.
(wait_sig): Use already calculated 'next' element when signal is blocked.
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r-- | winsup/cygwin/sigproc.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 80a6fff1c..a2a2edd33 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -1190,7 +1190,7 @@ pending_signals::add (sigpacket& pack) if (se->si.si_signo) return; *se = pack; - se->next = NULL; + se->next = start.next; start.next = se; } @@ -1276,7 +1276,7 @@ wait_sig (VOID *) } } break; - default: + default: /* Normal (positive) signal */ if (pack.si.si_signo < 0) sig_clear (-pack.si.si_signo); else @@ -1293,7 +1293,7 @@ wait_sig (VOID *) while ((qnext = q->next)) { if (qnext->si.si_signo && qnext->process () <= 0) - q = q->next; + q = qnext; else { q->next = qnext->next; |