summaryrefslogtreecommitdiff
path: root/src/w32proc.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2017-08-29 18:13:44 +0300
committerEli Zaretskii <eliz@gnu.org>2017-08-29 18:13:44 +0300
commitbf0045d7a4cd4c7d4df3fa34b8a12795e8ee73aa (patch)
tree193a5d0f31488bd09a4439d8ea4f5bbc0a7e4783 /src/w32proc.c
parentb65cb981cce96eeae3690ffddac6f3ebe314036c (diff)
downloademacs-bf0045d7a4cd4c7d4df3fa34b8a12795e8ee73aa.tar.gz
Avoid aborting in 'waitpid' on MS-Windows
* src/w32proc.c (waitpid): Don't allow quitting if called with WNOHANG in OPTIONS. (Bug#28268)
Diffstat (limited to 'src/w32proc.c')
-rw-r--r--src/w32proc.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/w32proc.c b/src/w32proc.c
index 76af55f9985..ffd5f0d0a1a 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -1449,7 +1449,11 @@ waitpid (pid_t pid, int *status, int options)
do
{
- maybe_quit ();
+ /* When child_status_changed calls us with WNOHANG in OPTIONS,
+ we are supposed to be non-interruptible, so don't allow
+ quitting in that case. */
+ if (!dont_wait)
+ maybe_quit ();
active = WaitForMultipleObjects (nh, wait_hnd, FALSE, timeout_ms);
} while (active == WAIT_TIMEOUT && !dont_wait);