diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2022-03-01 18:19:41 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2022-03-01 18:23:24 +0300 |
commit | 9a3c058f661217b6757a464b1b1d8898f88c1567 (patch) | |
tree | d3a30f2fca28039851d1b6a41d99db48505577a2 /winsup/cygwin/sigproc.cc | |
parent | 195169186bfd58e45aaa31236575fb9d5957adad (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.cc | 4 |
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; |