Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2013-08-30 19:44:57 +0400
committerChristopher Faylor <me@cgf.cx>2013-08-30 19:44:57 +0400
commitc5abf768f9d9cacdddcecdc20b366513cbf91b8c (patch)
tree539af1c0673c0ff28a78f7b8416bd29d78248e0a /winsup/cygwin/sigproc.cc
parent6585330779f88deedd9d215bd7c15b534f430d4a (diff)
* 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.cc6
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;