summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/spawn.cc8
2 files changed, 11 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index c04ecc297..1b7c22d50 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+Wed Mar 15 14:25:38 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * spawn.cc (spawn_guts): Restore dependency on signal_arrived. It's
+ needed to wake up the WaitForSingleObject.
+
Tue Mar 14 23:41:16 2000 Christopher Faylor <cgf@cygnus.com>
Pipe changes throughout suggested by Eric Fifer <EFifer@sanwaint.com>
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index e4f41b26c..e1a191c7b 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -635,8 +635,8 @@ skip_arg_parsing:
{
BOOL exited;
- HANDLE waitbuf[2] = {pi.hProcess, spr};
- int nwait = 2;
+ HANDLE waitbuf[3] = {pi.hProcess, signal_arrived, spr};
+ int nwait = 3;
SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_HIGHEST);
res = 0;
@@ -675,6 +675,10 @@ skip_arg_parsing:
}
break;
case WAIT_OBJECT_0 + 1:
+ sigproc_printf ("signal arrived");
+ ResetEvent (signal_arrived);
+ continue;
+ case WAIT_OBJECT_0 + 2:
res = EXIT_REPARENTING;
MALLOC_CHECK;
ForceCloseHandle (spr);