diff options
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r-- | winsup/cygwin/sigproc.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 2bb9d4eda..382b226f8 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -1097,9 +1097,10 @@ wait_sig (VOID *self) else { int sig = pack.si.si_signo; - // FIXME: Not quite right when taking threads into consideration. - // Do we need a per-thread queue? - if (sigq.sigs[sig].si.si_signo) + // FIXME: REALLY not right when taking threads into consideration. + // We need a per-thread queue since each thread can have its own + // list of blocked signals. CGF 2005-08-24 + if (sigq.sigs[sig].si.si_signo && sigq.sigs[sig].tls == pack.tls) sigproc_printf ("sig %d already queued", pack.si.si_signo); else { |