* spawn.cc (spawn_guts): Start pure-windows processes in a suspended state to
avoid potential DuplicateHandle problems.
This commit is contained in:
parent
832a897240
commit
2319775273
@ -1,3 +1,8 @@
|
||||
2007-03-28 Christopher Faylor <me@cgf.cx>
|
||||
|
||||
* spawn.cc (spawn_guts): Start pure-windows processes in a suspended
|
||||
state to avoid potential DuplicateHandle problems.
|
||||
|
||||
2007-03-13 Eric Blake <ebb9@byu.net>
|
||||
|
||||
* include/cygwin/stat.h (S_TYPEISMQ, S_TYPEISSEM, S_TYPEISSHM):
|
||||
|
@ -455,7 +455,7 @@ spawn_guts (const char * prog_arg, const char *const *argv,
|
||||
So we have to start the child in suspend state, unfortunately, to avoid
|
||||
a race condition. */
|
||||
if (!newargv.win16_exe
|
||||
&& (mode != _P_OVERLAY || cygheap->fdtab.need_fixup_before ()))
|
||||
&& (!ch.iscygwin () || mode != _P_OVERLAY || cygheap->fdtab.need_fixup_before ()))
|
||||
c_flags |= CREATE_SUSPENDED;
|
||||
|
||||
runpath = null_app_name ? NULL : (const char *) real_path;
|
||||
@ -609,11 +609,9 @@ loop:
|
||||
if (!newargv.win16_exe && myself->wr_proc_pipe)
|
||||
{
|
||||
if (!looped)
|
||||
{
|
||||
myself->sync_proc_pipe (); /* Make sure that we own wr_proc_pipe
|
||||
just in case we've been previously
|
||||
execed. */
|
||||
}
|
||||
myself->sync_proc_pipe (); /* Make sure that we own wr_proc_pipe
|
||||
just in case we've been previously
|
||||
execed. */
|
||||
orig_wr_proc_pipe = myself->dup_proc_pipe (pi.hProcess);
|
||||
}
|
||||
pid = myself->pid;
|
||||
|
Loading…
Reference in New Issue
Block a user