emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r103103: * xterm.c (x_connection_clos


From: Jan D.
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103103: * xterm.c (x_connection_closed): Remove all calls that calls XSync.
Date: Thu, 03 Feb 2011 14:46:03 +0100
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 103103
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Thu 2011-02-03 14:46:03 +0100
message:
  * xterm.c (x_connection_closed): Remove all calls that calls XSync.
modified:
  src/ChangeLog
  src/xterm.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-02-01 19:46:21 +0000
+++ b/src/ChangeLog     2011-02-03 13:46:03 +0000
@@ -1,3 +1,8 @@
+2011-02-03  Jan Djärv  <address@hidden>
+
+       * xterm.c (x_connection_closed): Remove all calls that calls
+       XSync (Bug#7949).
+
 2011-02-01  Eli Zaretskii  <address@hidden>
 
        * image.c (tiff_load): Avoid compiler warning in 2nd arg to

=== modified file 'src/xterm.c'
--- a/src/xterm.c       2011-02-01 08:53:03 +0000
+++ b/src/xterm.c       2011-02-03 13:46:03 +0000
@@ -7694,12 +7694,6 @@
   strcpy (error_msg, error_message);
   handling_signal = 0;
 
-  /* Prevent being called recursively because of an error condition
-     below.  Otherwise, we might end up with printing ``can't find per
-     display information'' in the recursive call instead of printing
-     the original message here.  */
-  x_catch_errors (dpy);
-
   /* Inhibit redisplay while frames are being deleted. */
   specbind (Qinhibit_redisplay, Qt);
 
@@ -7742,26 +7736,9 @@
      first place, so don't try to close it.  */
   if (dpyinfo)
     {
-#ifdef USE_X_TOOLKIT
-      /* We have to close the display to inform Xt that it doesn't
-        exist anymore.  If we don't, Xt will continue to wait for
-        events from the display.  As a consequence, a sequence of
-
-        M-x make-frame-on-display RET :1 RET
-        ...kill the new frame, so that we get an IO error...
-        M-x make-frame-on-display RET :1 RET
-
-        will indefinitely wait in Xt for events for display `:1',
-        opened in the first call to make-frame-on-display.
-
-        Closing the display is reported to lead to a bus error on
-        OpenWindows in certain situations.  I suspect that is a bug
-        in OpenWindows.  I don't know how to circumvent it here.  */
-      fatal_error_signal_hook = x_fatal_error_signal;
-      XtCloseDisplay (dpy);
-      fatal_error_signal_hook = NULL;
-#endif /* USE_X_TOOLKIT */
-
+      /* We can not call XtCloseDisplay here because it calls XSync.
+         XSync inside the error handler apparently hangs Emacs.  On
+         current Xt versions, this isn't needed either.  */
 #ifdef USE_GTK
       /* A long-standing GTK bug prevents proper disconnect handling
         (https://bugzilla.gnome.org/show_bug.cgi?id=85715).  Once,
@@ -7792,8 +7769,6 @@
       }
     }
 
-  x_uncatch_errors ();
-
   if (terminal_list == 0)
     {
       fprintf (stderr, "%s\n", error_msg);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]