Commit ef2a22d0 authored by Richard M. Stallman's avatar Richard M. Stallman

(x_noop_count): New variable.

(x_term_init) [X_IO_BUG]: Init it.
(XTread_socket) [X_IO_BUG]: Don't do XNoOp every time, just 1 in 100.
parent 65df0851
......@@ -347,6 +347,11 @@ static short grey_bits[] = {
static Pixmap GreyPixmap = 0;
#endif /* ! defined (HAVE_X11) */
#ifdef X_IO_BUG
static int x_noop_count;
#endif
/* From time to time we get info on an Emacs window, here. */
static WINDOWINFO_TYPE windowinfo;
......@@ -4310,10 +4315,20 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
}
#ifdef X_IO_BUG
if (! event_found)
/* On some systems, an X bug causes Emacs to get no more events
when the window is destroyed. Detect that. (1994.) */
XNoOp (x_current_display);
if (! event_found)
{
/* On some systems, an X bug causes Emacs to get no more events
when the window is destroyed. Detect that. (1994.) */
/* Emacs and the X Server eats up CPU time if XNoOp is done every time.
One XNOOP in 100 loops will make Emacs terminate.
B. Bretthauer, 1994 */
x_noop_count++;
if (x_noop_count >= 100)
{
x_noop_count=0;
XNoOp (x_current_display);
}
}
#endif /* X_IO_BUG */
#if 0 /* This fails for serial-line connections to the X server,
......@@ -6078,6 +6093,10 @@ x_term_init (display_name, xrm_option, resource_name)
#endif /* ! defined (F_SETOWN) */
#endif /* F_SETOWN_BUG */
#ifdef X_IO_BUG
x_noop_count = 0;
#endif
x_focus_frame = x_highlight_frame = 0;
#ifdef USE_X_TOOLKIT
......
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