aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
authorEli Zaretskii2025-10-11 12:22:58 +0300
committerEli Zaretskii2025-10-11 12:22:58 +0300
commitf8b4ce68432d513526a372b726afbdeb7310e407 (patch)
tree8506e8262450b1913233f1a5694b1eb8fac0887d /src/process.c
parentc172b6dded4f92f47f035b724605ecbb0e19970c (diff)
downloademacs-f8b4ce68432d513526a372b726afbdeb7310e407.tar.gz
emacs-f8b4ce68432d513526a372b726afbdeb7310e407.zip
Fix last change
At least on MS-Windows, the last change caused the process-tests/fd-setsize-no-crash/make-process test to hang. * src/process.c (wait_reading_process_output) [WINDOWSNT]: Do not stop monitoring the process descriptor when zero bytes are read. The EOF indication from subprocesses on MS-Windows is detected via an error condition (see w32.c), while zero-size reads are not to be taken as such. (Bug#79436)
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/process.c b/src/process.c
index bd128311033..86e83e58c56 100644
--- a/src/process.c
+++ b/src/process.c
@@ -6054,7 +6054,11 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
6054 process gone just because its pipe is closed. */ 6054 process gone just because its pipe is closed. */
6055 else if (nread == 0 && !NETCONN_P (proc) && !SERIALCONN_P (proc) 6055 else if (nread == 0 && !NETCONN_P (proc) && !SERIALCONN_P (proc)
6056 && !PIPECONN_P (proc)) 6056 && !PIPECONN_P (proc))
6057#ifdef WINDOWSNT
6058 ;
6059#else
6057 delete_read_fd (channel); 6060 delete_read_fd (channel);
6061#endif
6058 else if (nread == 0 && PIPECONN_P (proc)) 6062 else if (nread == 0 && PIPECONN_P (proc))
6059 { 6063 {
6060 /* Preserve status of processes already terminated. */ 6064 /* Preserve status of processes already terminated. */