From 0efff769fde31941788e77bdeac1d7fdd2e19088 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 3 Jan 2004 20:57:11 +0000 Subject: * exceptions.cc (_threadinfo::interrupt_now): Avoid double call to sigdelayed. * pinfo.cc (_pinfo::commune_send): Avoid inexplicable test which caused most pids to be shown as "" on Win9x. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/exceptions.cc | 3 +-- winsup/cygwin/pinfo.cc | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'winsup') diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 983ff57fe..e970723bc 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2004-01-03 Christopher Faylor + + * exceptions.cc (_threadinfo::interrupt_now): Avoid double call to + sigdelayed. + * pinfo.cc (_pinfo::commune_send): Avoid inexplicable test which caused + most pids to be shown as "" on Win9x. + 2004-01-02 Christopher Faylor * cygheap.h (init_cygheap): Play more vfork shell games and move diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 97955307b..669b516ab 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -675,7 +675,7 @@ _threadinfo::interrupt_now (CONTEXT *ctx, int sig, void *handler, { push (0); interrupt_setup (sig, handler, siga, (__stack_t) ctx->Eip); - ctx->Eip = (DWORD) sigdelayed; + ctx->Eip = pop (); SetThreadContext (*this, ctx); /* Restart the thread in a new location */ return 1; } @@ -1133,7 +1133,6 @@ call_signal_handler_now () return sa_flags & SA_RESTART; } -#define pid_offset (unsigned)(((_pinfo *)NULL)->pid) void __stdcall reset_signal_arrived () { diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc index 4ce702e6a..834fa8574 100644 --- a/winsup/cygwin/pinfo.cc +++ b/winsup/cygwin/pinfo.cc @@ -435,7 +435,7 @@ _pinfo::commune_send (DWORD code, ...) res.s = NULL; res.n = 0; - if (!pid || !this || (dwProcessId != (DWORD) pid && !pinfo (myself->dwProcessId))) + if (!this || !pid) { set_errno (ESRCH); goto err; -- cgit v1.2.3