diff options
author | Christopher Faylor <me@cgf.cx> | 2004-12-05 21:29:37 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2004-12-05 21:29:37 +0000 |
commit | f181da27079a1f4838e2b4fc88bfab3a92b0a696 (patch) | |
tree | 9ada6d977ce88152e05a44d471d6d1d1cfa4c824 /winsup/cygwin/sigproc.cc | |
parent | 54dd79bb44d2180ab769558deab274c70391cca7 (diff) | |
download | cygnal-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.cc | 5 |
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; |