Commit 85fabcb7 authored by Chong Yidong's avatar Chong Yidong
Browse files

* process.c (wait_reading_process_output): Clean up last change.

parent 893cc455
2012-11-03 Chong Yidong <cyd@gnu.org>
* process.c (wait_reading_process_output): Clean up the last
change.
2012-11-03 Jim Paris <jim@jtan.com> (tiny change) 2012-11-03 Jim Paris <jim@jtan.com> (tiny change)
   
* process.c (wait_reading_process_output): Avoid a race condition * process.c (wait_reading_process_output): Avoid a race condition
......
...@@ -4354,8 +4354,6 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, ...@@ -4354,8 +4354,6 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
while (1) while (1)
{ {
int timeout_reduced_for_timers = 0;
/* If calling from keyboard input, do not quit /* If calling from keyboard input, do not quit
since we want to return C-g as an input character. since we want to return C-g as an input character.
Otherwise, do pending quit if requested. */ Otherwise, do pending quit if requested. */
...@@ -4435,10 +4433,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, ...@@ -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_VALID_P (timer_delay))
{ {
if (EMACS_TIME_LT (timer_delay, timeout)) if (EMACS_TIME_LT (timer_delay, timeout))
{ timeout = timer_delay;
timeout = timer_delay;
timeout_reduced_for_timers = 1;
}
} }
else else
{ {
...@@ -4697,11 +4692,11 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd, ...@@ -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. */ /* If we woke up due to SIGWINCH, actually change size now. */
do_pending_window_change (0); do_pending_window_change (0);
/* The following optimization fails if SIGIO is received between /* We used to break here if nfds == 0, i.e. we seemed to have
set_waiting_for_input and select (Bug#11536). waited the full period. But apparently if Emacs receives
if ((time_limit || nsecs) && nfds == 0 && ! timeout_reduced_for_timers) SIGIO between set_waiting_for_input and select, select can
break; return with nfds == 0 due to the timeout being zeroed out by
*/ the signal handler (Bug#11536). */
if (nfds < 0) if (nfds < 0)
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment