summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/sigproc.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2004-12-05 21:29:37 +0000
committerChristopher Faylor <me@cgf.cx>2004-12-05 21:29:37 +0000
commitf181da27079a1f4838e2b4fc88bfab3a92b0a696 (patch)
tree9ada6d977ce88152e05a44d471d6d1d1cfa4c824 /winsup/cygwin/sigproc.cc
parent54dd79bb44d2180ab769558deab274c70391cca7 (diff)
downloadcygnal-f181da27079a1f4838e2b4fc88bfab3a92b0a696.tar.gz
cygnal-f181da27079a1f4838e2b4fc88bfab3a92b0a696.tar.bz2
cygnal-f181da27079a1f4838e2b4fc88bfab3a92b0a696.zip
* cygthread.cc (cygthread::terminate_thread): Make public.
* pinfo.h (pinfo::wait_thread): New element. * pinfo.cc (pinfo::wait): Store "handle" to started thread in pinfo. * sigproc.cc (proc_terminate): Kill any threads waiting for a process pipe.
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r--winsup/cygwin/sigproc.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index d7c57b1d2..bc1d6fff6 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -401,6 +401,11 @@ proc_terminate (void)
procs[i]->ppid = 1;
if (!proc_exists (procs[i]))
procs[i]->process_state = PID_EXITED; /* CGF FIXME - still needed? */
+ if (procs[i].wait_thread)
+ {
+ // CloseHandle (procs[i].rd_proc_pipe);
+ procs[i].wait_thread->terminate_thread ();
+ }
procs[i].release ();
}
nprocs = 0;