From 3ac04ed074e0e4ebe8a937b49e685276ac30531b Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sat, 4 Nov 2006 03:37:40 +0000 Subject: [PATCH] * w32proc.c: (sys_wait) Only wait for processes with fd<0. Others should be handled by sys_select instead. Fixes problems with (progn (start-process "" nil "ls") (call-process "ls")) --- src/ChangeLog | 6 ++++++ src/w32proc.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 94e1e02f7f2..594c5dcd4c8 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2006-10-27 Slawomir Nowaczyk (tiny change) + + * w32proc.c: (sys_wait) Only wait for processes with fd<0. + Others should be handled by sys_select instead. Fixes problems + with (progn (start-process "" nil "ls") (call-process "ls")) + 2006-11-03 Giorgos Keramidas (tiny change) * xmenu.c (Fmenu_bar_open): Declare variable before BLOCK_INPUT to diff --git a/src/w32proc.c b/src/w32proc.c index 29491931015..7d27172781d 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -486,7 +486,8 @@ sys_wait (int *status) { for (cp = child_procs+(child_proc_count-1); cp >= child_procs; cp--) /* some child_procs might be sockets; ignore them */ - if (CHILD_ACTIVE (cp) && cp->procinfo.hProcess) + if (CHILD_ACTIVE (cp) && cp->procinfo.hProcess + && (cp->fd < 0 || (fd_info[cp->fd].flags & FILE_AT_EOF) != 0)) { wait_hnd[nh] = cp->procinfo.hProcess; cps[nh] = cp;