Commit 365dc66c authored by Chong Yidong's avatar Chong Yidong

Document GTK Emacs kill on display close in PROBLEMS.

* src/xterm.c (x_connection_closed): Update comment.
parent c05c2b9b
......@@ -235,19 +235,18 @@ necessary but missing, please report it via M-x report-emacs-bug.
On platforms such as Solaris, you can also work around this problem by
configuring your compiler to use the native linker instead of GNU ld.
** Emacs compiled with Gtk+ crashes when closing a display (x-close-connection).
** When Emacs is compiled with Gtk+, closing a display kills Emacs.
This happens because of bugs in Gtk+. Gtk+ 2.10 seems to be OK. See bug
There is a long-standing bug in GTK that prevents it from recovering
from disconnects:
** Emacs compiled with Gtk+ may loop forever if a display crashes.
Thus, for instance, when Emacs is run as a server on a text terminal,
and an X frame is created, and the X server for that frame crashes or
exits unexpectedly, Emacs must exit to prevent a GTK error that would
result in an endless loop.
This is related to the bug above. A scenario for this is when emacs is run
as a server, and an X frame is created. If the X server for the frame
crashes or exits unexpectedly and an attempt is made to create a new
frame on another X display, then a Gtk+ error happens in the emacs
server that results in an endless loop. This is not fixed in any known
Gtk+ version (2.14.4 being current).
If you need Emacs to be able to recover from closing displays, compile
it with the Lucid toolkit instead of GTK.
* General runtime problems
......@@ -7698,7 +7698,13 @@ x_connection_closed (Display *dpy, const char *error_message)
#ifdef USE_GTK
/* Due to bugs in some Gtk+ versions, just exit here. */
/* There is a long-standing bug in GTK that prevents the GTK
main loop from recovering gracefully from disconnects
( Among
other problems, this gives rise to a stream of Glib error
messages that, in one incident, filled up a user's hard disk
So, kill Emacs unconditionally if the display is closed. */
fprintf (stderr, "%s\n", error_msg);
Fkill_emacs (make_number (70));
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