[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-24 4d2e7e1: Fixes: debbugs:19175
From: |
Jan D. |
Subject: |
[Emacs-diffs] emacs-24 4d2e7e1: Fixes: debbugs:19175 |
Date: |
Sun, 29 Mar 2015 19:16:33 +0000 |
branch: emacs-24
commit 4d2e7e17547edda414129aeee910cd0334b4e85e
Author: Jan D <address@hidden>
Commit: Jan D <address@hidden>
Fixes: debbugs:19175
* gtkutil.c (xg_display_open):
* xterm.c (x_display_ok, x_term_init): Block SIGIO when opening
a display.
---
src/ChangeLog | 6 ++++++
src/gtkutil.c | 2 ++
src/xterm.c | 12 +++++++++++-
3 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/src/ChangeLog b/src/ChangeLog
index e679348..39b3c9f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2015-03-29 Jan Djärv <address@hidden>
+
+ * gtkutil.c (xg_display_open):
+ * xterm.c (x_display_ok, x_term_init): Block SIGIO when opening
+ a display (Bug#19175).
+
2015-04-01 Nicolas Petton <address@hidden>
* Version 24.5 released.
diff --git a/src/gtkutil.c b/src/gtkutil.c
index fedaa0f..eddd2b5 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -167,7 +167,9 @@ xg_display_open (char *display_name, Display **dpy)
{
GdkDisplay *gdpy;
+ unrequest_sigio (); // See comment in x_display_ok, xterm.c.
gdpy = gdk_display_open (display_name);
+ request_sigio ();
if (!gdpy_def && gdpy)
{
gdpy_def = gdpy;
diff --git a/src/xterm.c b/src/xterm.c
index 4ca1e13..2ac2fe8 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -9719,7 +9719,11 @@ get_bits_and_offset (unsigned long mask, int *bits, int
*offset)
bool
x_display_ok (const char *display)
{
- Display *dpy = XOpenDisplay (display);
+ Display *dpy;
+ // XOpenDisplay fails if it gets a signal. Block SIGIO which may arrive.
+ unrequest_sigio ();
+ dpy = XOpenDisplay (display);
+ request_sigio ();
return dpy ? (XCloseDisplay (dpy), 1) : 0;
}
@@ -9811,7 +9815,9 @@ x_term_init (Lisp_Object display_name, char *xrm_option,
char *resource_name)
/* gtk_init does set_locale. Fix locale before and after. */
fixup_locale ();
+ unrequest_sigio (); // See comment in x_display_ok.
gtk_init (&argc, &argv2);
+ request_sigio ();
fixup_locale ();
g_log_remove_handler ("GLib", id);
@@ -9861,10 +9867,12 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
argv[argc++] = xrm_option;
}
turn_on_atimers (0);
+ unrequest_sigio (); // See comment in x_display_ok.
dpy = XtOpenDisplay (Xt_app_con, SSDATA (display_name),
resource_name, EMACS_CLASS,
emacs_options, XtNumber (emacs_options),
&argc, argv);
+ request_sigio ();
turn_on_atimers (1);
#ifdef HAVE_X11XTR6
@@ -9875,7 +9883,9 @@ x_term_init (Lisp_Object display_name, char *xrm_option,
char *resource_name)
#else /* not USE_X_TOOLKIT */
XSetLocaleModifiers ("");
+ unrequest_sigio (); // See comment in x_display_ok.
dpy = XOpenDisplay (SSDATA (display_name));
+ request_sigio ();
#endif /* not USE_X_TOOLKIT */
#endif /* not USE_GTK*/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-24 4d2e7e1: Fixes: debbugs:19175,
Jan D. <=