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:
authorCorinna Vinschen <corinna@vinschen.de>2022-03-01 18:19:41 +0300
committerCorinna Vinschen <corinna@vinschen.de>2022-03-01 18:23:24 +0300
commit9a3c058f661217b6757a464b1b1d8898f88c1567 (patch)
treed3a30f2fca28039851d1b6a41d99db48505577a2 /winsup/cygwin/sigproc.cc
parent195169186bfd58e45aaa31236575fb9d5957adad (diff)
Cygwin: /proc/<PID>/status: Fill SigPnd, SigBlk and SigIgn values with life
So far the values of SigPnd and SigBlk were always 0 and SigIgn was incorrectly set to the block mask of the current thread of the calling process. Fix that by adding a _pinfo::siginfo method and a PICOM_SIGINFO message to allow to request actual signal info of any running process. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r--winsup/cygwin/sigproc.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index 449777cda..d3f2b0c6a 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -683,7 +683,7 @@ sig_send (_pinfo *p, siginfo_t& si, _cygtls *tls)
sigset_t pending;
if (!its_me)
pack.mask = NULL;
- else if (si.si_signo == __SIGPENDING)
+ else if (si.si_signo == __SIGPENDING || si.si_signo == __SIGPENDINGALL)
pack.mask = &pending;
else if (si.si_signo == __SIGFLUSH || si.si_signo > 0)
{
@@ -801,7 +801,7 @@ out:
}
if (pack.wakeup)
ForceCloseHandle (pack.wakeup);
- if (si.si_signo != __SIGPENDING)
+ if (si.si_signo != __SIGPENDING && si.si_signo != __SIGPENDINGALL)
/* nothing */;
else if (!rc)
rc = pending;