summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/exceptions.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-10-24 02:25:27 +0000
committerChristopher Faylor <me@cgf.cx>2000-10-24 02:25:27 +0000
commit4c45a897440c6517ab607daa36163f589863d09c (patch)
tree51c40b8f6e77c09fe5adfbec9b21c93a4b9b7495 /winsup/cygwin/exceptions.cc
parent00ee2b44e796d03e3ce805a731d719ad17254fac (diff)
downloadcygnal-4c45a897440c6517ab607daa36163f589863d09c.tar.gz
cygnal-4c45a897440c6517ab607daa36163f589863d09c.tar.bz2
cygnal-4c45a897440c6517ab607daa36163f589863d09c.zip
* exceptions.cc (signal_exit): Kill any executing child process if we're dying.
* path.h: Remove unneeded extern. * spawn.cc (std_suffixes): Make static. Don't set dwProcessId here since it makes the process unsignalable. Set strace flag that this is an execed process stub. * strace.cc (strace::vsprntf): Use strace flag to indicate when to visually flag that this is an exec stub. * include/sys/strace.h (strace): Add 'execing' flag.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r--winsup/cygwin/exceptions.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 0054b1a2c..38879ee6e 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1017,6 +1017,8 @@ exit_sig:
static void
signal_exit (int rc)
{
+ extern HANDLE hExeced;
+
rc = EXIT_SIGNAL | (rc << 8);
if (exit_already++)
myself->exit (rc);
@@ -1035,6 +1037,9 @@ signal_exit (int rc)
user_data->resourcelocks->Delete ();
user_data->resourcelocks->Init ();
+ if (hExeced)
+ TerminateProcess (hExeced, rc);
+
do_exit (rc);
}