From 06b63c9b0c6fd87e699ba6ba3be959bfd150ef8a Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 4 Nov 2012 14:33:00 -0800 Subject: [PATCH] Remove EMACS_OUTQSIZE+sleep hack. * dispnew.c (update_frame_1): Remove hack for terminals slower than 2400 bps, which throttled Emacs by having it sleep. This code hasn't worked since at least 2007, when the multi-tty stuff was added, and anyway those old terminals are long dead. * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even without the dispnew.c change, as dispnew.c doesn't include systty.h. --- src/ChangeLog | 8 ++++++++ src/dispnew.c | 16 +--------------- src/systty.h | 11 ----------- 3 files changed, 9 insertions(+), 26 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3356c9874c..75b70ee475 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,13 @@ 2012-11-04 Paul Eggert + Remove EMACS_OUTQSIZE+sleep hack. + * dispnew.c (update_frame_1): Remove hack for terminals slower + than 2400 bps, which throttled Emacs by having it sleep. This + code hasn't worked since at least 2007, when the multi-tty stuff + was added, and anyway those old terminals are long dead. + * systty.h (EMACS_OUTQSIZE): Remove; unused. The macro isn't used even + without the dispnew.c change, as dispnew.c doesn't include systty.h. + Fix data-loss with --version (Bug#9574). * emacs.c (close_output_streams): Use strerror, not emacs_strerror, as we can't assume that emacs_strerror is initialized, and strerror diff --git a/src/dispnew.c b/src/dispnew.c index e99387d2f6..2ddd29139a 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -4650,21 +4650,7 @@ update_frame_1 (struct frame *f, bool force_p, bool inhibit_id_p) int outq = PENDING_OUTPUT_COUNT (display_output); if (outq > 900 || (outq > 20 && ((i - 1) % preempt_count == 0))) - { - fflush (display_output); - if (preempt_count == 1) - { -#ifdef EMACS_OUTQSIZE - if (EMACS_OUTQSIZE (0, &outq) < 0) - /* Probably not a tty. Ignore the error and reset - the outq count. */ - outq = PENDING_OUTPUT_COUNT (FRAME_TTY (f->output)); -#endif - outq *= 10; - if (baud_rate <= outq && baud_rate > 0) - sleep (outq / baud_rate); - } - } + fflush (display_output); } } diff --git a/src/systty.h b/src/systty.h index b7f36c6c25..0611511d90 100644 --- a/src/systty.h +++ b/src/systty.h @@ -52,17 +52,6 @@ along with GNU Emacs. If not, see . */ #endif /* not CDEL */ #endif /* not _POSIX_VDISABLE */ -/* Get the number of characters queued for output. */ - -/* EMACS_OUTQSIZE(FD, int *SIZE) stores the number of characters - queued for output to the terminal FD in *SIZE, if FD is a tty. - Returns -1 if there was an error (i.e. FD is not a tty), 0 - otherwise. */ -#ifdef TIOCOUTQ -#define EMACS_OUTQSIZE(fd, size) (ioctl ((fd), TIOCOUTQ, (size))) -#endif - - /* Manipulate a terminal's current process group. */ /* EMACS_GETPGRP (arg) returns the process group of the process. */ -- 2.20.1