Mercurial > emacs
changeset 53473:e93d01ecd023
*** empty log message ***
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Thu, 01 Jan 2004 23:44:00 +0000 |
parents | 1a5fe79d27f3 |
children | dc7da3850335 0abaf12fa706 |
files | etc/NEWS src/ChangeLog |
diffstat | 2 files changed, 38 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/etc/NEWS Thu Jan 01 23:34:14 2004 +0000 +++ b/etc/NEWS Thu Jan 01 23:44:00 2004 +0000 @@ -1,5 +1,5 @@ GNU Emacs NEWS -- history of user-visible changes. 2003-05-21 -Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. See the end for copying conditions. Please send Emacs bug reports to bug-gnu-emacs@gnu.org. @@ -2523,6 +2523,17 @@ The new low-level functions process-plist and set-process-plist are used to access and replace the entire property list of a process. +??? +*** Adaptive read buffering of subprocess output. + +On some systems, when emacs reads the output from a subprocess, the +output data is read in very small blocks, potentially resulting in +very poor performance. This behaviour can be remedied to some extent +by setting the new variable process-adaptive-read-buffering to a +non-nil value (the default), as it will automatically delay reading +from such processes, to allowing them to produce more output before +emacs tries to read it. + +++ ** Enhanced networking support.
--- a/src/ChangeLog Thu Jan 01 23:34:14 2004 +0000 +++ b/src/ChangeLog Thu Jan 01 23:44:00 2004 +0000 @@ -1,3 +1,29 @@ +2004-01-02 Kim F. Storm <storm@cua.dk> + + * process.h (struct Lisp_Process): New members for adaptive read + buffering: adaptive_read_buffering, read_output_delay, and + read_output_skip. + + * process.c (ADAPTIVE_READ_BUFFERING): New conditional. + (READ_OUTPUT_DELAY_INCREMENT, READ_OUTPUT_DELAY_MAX) + (READ_OUTPUT_DELAY_MAX_MAX): New constants. + (process_output_delay_count, process_output_skip): New vars. + (Vprocess_adaptive_read_buffering): New variable. + (make_process): Initialize adaptive read buffering members. + (Fstart_process): Set adaptive_read_buffering member. + (deactivate_process): Cleanup adaptive read buffering. + (wait_reading_process_input): Temporarily omit delayed + subprocesses from the set of file descriptors to read from; + adjust the select timeout if we skipped any subprocesses. + (read_process_output): Increase adaptive read buffering delay if + we read less than a full buffer; reduce delay when we read a + full buffer. + (send_process): Simplify using local Lisp_Process var. + Reset adaptive read buffering delay after write. + (init_process): Initialize process_output_delay_count and + process_output_skip. + (syms_of_process): DEFVAR_LISP Vprocess_adaptive_read_buffering. + 2004-01-01 Jason Rumney <jasonr@gnu.org> * w32term.c (w32_text_out): Use s->font, for consistency with