From: Kim F. Storm Date: Thu, 1 Jan 2004 23:44:00 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: ttn-vms-21-2-B4~8026 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=31e0fbdd4308bde64849bbfa0327a2a77797b3e9;p=emacs.git *** empty log message *** --- diff --git a/etc/NEWS b/etc/NEWS index ec9aae9357d..e904c06c699 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -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 @@ and modify elements on this property list. 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. diff --git a/src/ChangeLog b/src/ChangeLog index d70fd85fb89..d5bf5ba7aa9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,29 @@ +2004-01-02 Kim F. Storm + + * 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 * w32term.c (w32_text_out): Use s->font, for consistency with