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