From 1bde6e09a629f9c5abb4ddccdc973fd8055d6b27 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Mon, 19 Sep 2005 14:15:06 +0000 Subject: * sigproc.cc (talktome): Take siginfo_t argument. Don't scan all pids trying to find one that's talking to me. Just use the pid from siginfo_t. (wait_pid): Pass siginfo_t argument to talktome. --- winsup/cygwin/sigproc.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'winsup/cygwin/sigproc.cc') diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 3766df7ea..59f79961d 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -922,13 +922,11 @@ stopped_or_terminated (waitq *parent_w, _pinfo *child) } static void -talktome () +talktome (siginfo_t& si) { - winpids pids ((DWORD) PID_MAP_RW); - for (unsigned i = 0; i < pids.npids; i++) - if (pids[i]->hello_pid == myself->pid) - if (!IsBadWritePtr (pids[i], sizeof (_pinfo))) - pids[i]->commune_recv (); + pinfo p (si.si_pid, PID_MAP_RW); + if (p) + p->commune_recv (); } void @@ -1041,7 +1039,7 @@ wait_sig (VOID *self) switch (pack.si.si_signo) { case __SIGCOMMUNE: - talktome (); + talktome (pack.si); break; case __SIGSTRACE: strace.hello (); -- cgit v1.2.3