From 85fabcb7ee546bf689727fb7b26f33414f55b46d Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Sun, 4 Nov 2012 00:36:23 +0800 Subject: [PATCH] * process.c (wait_reading_process_output): Clean up last change. --- src/ChangeLog | 5 +++++ src/process.c | 17 ++++++----------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index e26dd561495..193246c4fad 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-11-03 Chong Yidong + + * process.c (wait_reading_process_output): Clean up the last + change. + 2012-11-03 Jim Paris (tiny change) * process.c (wait_reading_process_output): Avoid a race condition diff --git a/src/process.c b/src/process.c index dae687cb59c..29c880da3b0 100644 --- a/src/process.c +++ b/src/process.c @@ -4354,8 +4354,6 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, while (1) { - int timeout_reduced_for_timers = 0; - /* If calling from keyboard input, do not quit since we want to return C-g as an input character. Otherwise, do pending quit if requested. */ @@ -4435,10 +4433,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, if (EMACS_TIME_VALID_P (timer_delay)) { if (EMACS_TIME_LT (timer_delay, timeout)) - { - timeout = timer_delay; - timeout_reduced_for_timers = 1; - } + timeout = timer_delay; } else { @@ -4697,11 +4692,11 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, /* If we woke up due to SIGWINCH, actually change size now. */ do_pending_window_change (0); - /* The following optimization fails if SIGIO is received between - set_waiting_for_input and select (Bug#11536). - if ((time_limit || nsecs) && nfds == 0 && ! timeout_reduced_for_timers) - break; - */ + /* We used to break here if nfds == 0, i.e. we seemed to have + waited the full period. But apparently if Emacs receives + SIGIO between set_waiting_for_input and select, select can + return with nfds == 0 due to the timeout being zeroed out by + the signal handler (Bug#11536). */ if (nfds < 0) { -- 2.39.5