Fix handling of pending signals in wait_reading_process_output (Bug#8869).
* process.c (wait_reading_process_output): Bypass select if waiting for a cell while ignoring keyboard input, and input is pending. Suggested by Jan Djärv.
This commit is contained in:
parent
ee584d02dd
commit
029529ac6f
2 changed files with 16 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-06-26 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* process.c (wait_reading_process_output): Bypass select if
|
||||
waiting for a cell while ignoring keyboard input, and input is
|
||||
pending. Suggested by Jan Djärv (Bug#8869).
|
||||
|
||||
2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Use gnulib's dup2 module instead of rolling our own.
|
||||
|
@ -351,7 +357,7 @@
|
|||
|
||||
2011-06-22 Jim Meyering <meyering@redhat.com>
|
||||
|
||||
don't leak an XBM-image-sized buffer
|
||||
Don't leak an XBM-image-sized buffer
|
||||
* image.c (xbm_load): Free the image buffer after using it.
|
||||
|
||||
2011-06-21 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
|
|
@ -4479,13 +4479,19 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd,
|
|||
set_waiting_for_input (&timeout);
|
||||
}
|
||||
|
||||
/* Skip the `select' call if input is available and we're
|
||||
waiting for keyboard input or a cell change (which can be
|
||||
triggered by processing X events). In the latter case, set
|
||||
nfds to 1 to avoid breaking the loop. */
|
||||
no_avail = 0;
|
||||
if (read_kbd && detect_input_pending ())
|
||||
if ((read_kbd || !NILP (wait_for_cell))
|
||||
&& detect_input_pending ())
|
||||
{
|
||||
nfds = 0;
|
||||
nfds = read_kbd ? 0 : 1;
|
||||
no_avail = 1;
|
||||
}
|
||||
else
|
||||
|
||||
if (!no_avail)
|
||||
{
|
||||
|
||||
#ifdef ADAPTIVE_READ_BUFFERING
|
||||
|
|
Loading…
Add table
Reference in a new issue