* 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>
|
2007-03-13 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
* include/cygwin/stat.h (S_TYPEISMQ, S_TYPEISSEM, S_TYPEISSHM):
|
* 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
|
So we have to start the child in suspend state, unfortunately, to avoid
|
||||||
a race condition. */
|
a race condition. */
|
||||||
if (!newargv.win16_exe
|
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;
|
c_flags |= CREATE_SUSPENDED;
|
||||||
|
|
||||||
runpath = null_app_name ? NULL : (const char *) real_path;
|
runpath = null_app_name ? NULL : (const char *) real_path;
|
||||||
@ -609,11 +609,9 @@ loop:
|
|||||||
if (!newargv.win16_exe && myself->wr_proc_pipe)
|
if (!newargv.win16_exe && myself->wr_proc_pipe)
|
||||||
{
|
{
|
||||||
if (!looped)
|
if (!looped)
|
||||||
{
|
myself->sync_proc_pipe (); /* Make sure that we own wr_proc_pipe
|
||||||
myself->sync_proc_pipe (); /* Make sure that we own wr_proc_pipe
|
just in case we've been previously
|
||||||
just in case we've been previously
|
execed. */
|
||||||
execed. */
|
|
||||||
}
|
|
||||||
orig_wr_proc_pipe = myself->dup_proc_pipe (pi.hProcess);
|
orig_wr_proc_pipe = myself->dup_proc_pipe (pi.hProcess);
|
||||||
}
|
}
|
||||||
pid = myself->pid;
|
pid = myself->pid;
|
||||||
|
Loading…
Reference in New Issue
Block a user