aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/spawn.cc5
2 files changed, 10 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 946f758..521e0f3 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-01 Christopher Faylor <me@cgf.cx>
+
+ * spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin
+ _P_NOWAIT process.
+
2006-12-21 Corinna Vinschen <corinna@vinschen.de>
* fhandler_disk_file.cc (fhandler_disk_file::readdir): Improve debug
@@ -21,7 +26,7 @@
2006-12-18 Christopher Faylor <me@cgf.cx>
* pinfo.cc (set_myself): Use a more foolproof method for determining if
- the current process was started from another cygiwn process.
+ the current process was started from another cygwin process.
2006-12-15 Pierre A. Humblet <Pierre.Humblet@ieee.org>
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 352e51c..44bf8ee 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -673,7 +673,10 @@ loop:
sigproc_printf ("spawned windows pid %d", pi.dwProcessId);
- synced = ch.sync (pi.dwProcessId, pi.hProcess, INFINITE);
+ if ((mode == _P_DETACH || mode == _P_NOWAIT) && !ch.iscygwin ())
+ synced = false;
+ else
+ synced = ch.sync (pi.dwProcessId, pi.hProcess, INFINITE);
switch (mode)
{