[gnu.emacs] XNoOp packets in GNU emacs

streepy@UXC.CSO.UIUC.EDU (Larry Streepy) (02/21/89)

I have been analyzing the load that various X clients place on the host
machine and the network.  I have come across something a little odd in
GNU emacs.  In the file x11term.c, the function xfixscreen calls XNoOp
every time it is called (which is about once every .2 seconds).  I
compiled a version of emacs without the call to XNoOp and it appears to
function identically to the original.  I even tried severing the physical
connection between the client and the server (i.e. pull the ethernet
cable).  The only use I could see for the XNoOp was to verify that the
connection to the server was still functional.  This does not seem to be
the case however, because when the connection was severed the two
versions behaved identically.

Can you shed some light on the reason that XNoOp is being called?

Larry Streepy
Convex Computer Corporation
uunet!convex!streepy   or
streepy@convex.COM

rfrench@ATHENA.MIT.EDU ("Robert S. French") (02/22/89)

The XNoOp calls are buried in the history of Emacs and X.  It has been
used because emacs didn't behave properly when the X socket closed
when the used logged out and the X server died.  Emacs would simply
sit and loop due to a bug in the X library.  This bug started in X10
and has carried over to X11 despite our best efforts to get people to
fix it.  I'm not sure if it's still present in X11R2 and X11R3.  The
XNoOp and XFlush are done whenever the screen is refreshed even if
nothing else needs to be done.  This will cause Emacs to die with an X
error if the X server has been killed.  Under X10, since no XNoOp
existed, a 1x1 pixmap was retrieved, or something like that.

			Rob