Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-05-22 08:50:54 +0400
committerChristopher Faylor <me@cgf.cx>2006-05-22 08:50:54 +0400
commit6813f009ba2a95c9476e29fe356d2e3b46286efb (patch)
tree073ccf527cf9cb193ce1094b079bbfdba8687657 /winsup/cygwin/spawn.cc
parent8ae1d98d8ee2a0e0813d32aa42f2e584f99d17bf (diff)
* child_info.h (_CI_SAW_CTRL_C): New enum.
(CURR_CHILD_INFO_MAGIC): Reset. (saw_ctrl_c): New function. (set_saw_ctrl_c): Ditto. * sigproc.cc (child_info::proc_retry): Return EXITCODE_OK if we get STATUS_CONTROL_C_EXIT and we actually saw a CTRL-C. * spawn.cc (dwExeced): Delete. (chExeced): New variable. (spawn_guts): Set chExeced; * exceptions.cc (dwExeced): Delete declaration. (chExeced): Declare. (ctrl_c_handler): Detect if we're an exec stub process and set a flag, if so. * fhandler_tty.cc (fhandler_tty_common::__release_output_mutex): Add extra DEBUGGING test. * pinfo.cc: Fix comment.
Diffstat (limited to 'winsup/cygwin/spawn.cc')
-rw-r--r--winsup/cygwin/spawn.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 41f40543e..9f04b3074 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -52,7 +52,7 @@ static suffix_info dll_suffixes[] =
};
HANDLE hExeced;
-DWORD dwExeced;
+child_info_spawn *chExeced;
/* Add .exe to PROG if not already present and see if that exists.
If not, return PROG (converted from posix to win32 rules if necessary).
@@ -583,7 +583,8 @@ loop:
pid_t pid;
if (mode == _P_OVERLAY)
{
- myself->dwProcessId = dwExeced = pi.dwProcessId;
+ chExeced = &ch; /* FIXME: there's a race here if a user sneaks in CTRL-C */
+ myself->dwProcessId = pi.dwProcessId;
strace.execing = 1;
myself.hProcess = hExeced = pi.hProcess;
strcpy (myself->progname, real_path); // FIXME: race?