From: "Jan Djärv" <jan.h.d@swipnet.se>
To: Eli Zaretskii <eliz@gnu.org>
Cc: mb@becroft.co.nz, 19175@debbugs.gnu.org
Subject: bug#19175: 24.4; make-frame-on-display fails if emacs started with -nw
Date: Sun, 29 Mar 2015 19:09:48 +0200 [thread overview]
Message-ID: <551831DC.6010406@swipnet.se> (raw)
In-Reply-To: <83r3s7zw2i.fsf@gnu.org>
Den 2015-03-29 17:01, Eli Zaretskii skrev:
>> From: "Jan D." <jan.h.d@swipnet.se>
>> Date: Sun, 29 Mar 2015 10:45:16 +0200
>> Cc: 19175@debbugs.gnu.org
>>
>> No, it is a signal race. Apparently XOpenDisplay does not retry when interrupted by a signal, SIGIO in this case.
>> Blocking SIGIO at the appropriate locations fixes it.
>>
>> Is the fix too late for the 24-branch?
>
> Can you show the diffs that fix this?
>
> Thanks.
>
index fedaa0f..1f48262 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 ();
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..8284ed9 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -9719,7 +9719,10 @@ get_bits_and_offset (unsigned long mask, int *bits, int
*offset)
bool
x_display_ok (const char *display)
{
- Display *dpy = XOpenDisplay (display);
+ Display *dpy;
+ unrequest_sigio ();
+ dpy = XOpenDisplay (display);
+ request_sigio ();
return dpy ? (XCloseDisplay (dpy), 1) : 0;
}
@@ -9811,7 +9814,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 ();
gtk_init (&argc, &argv2);
+ request_sigio ();
fixup_locale ();
g_log_remove_handler ("GLib", id);
@@ -9861,10 +9866,12 @@ x_term_init (Lisp_Object display_name, char
*xrm_option, char *resource_name)
argv[argc++] = xrm_option;
}
turn_on_atimers (0);
+ unrequest_sigio ();
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 +9882,9 @@ x_term_init (Lisp_Object display_name, char *xrm_option,
char *resource_name)
#else /* not USE_X_TOOLKIT */
XSetLocaleModifiers ("");
+ unrequest_sigio ();
dpy = XOpenDisplay (SSDATA (display_name));
+ request_sigio ();
#endif /* not USE_X_TOOLKIT */
#endif /* not USE_GTK*/
Jan D.
next prev parent reply other threads:[~2015-03-29 17:09 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-25 4:28 bug#19175: 24.4; make-frame-on-display fails if emacs started with -nw Mario Becroft
2014-11-25 4:34 ` bug#19175: Further information Mario Becroft
2015-03-23 6:12 ` bug#19175: 24.4; make-frame-on-display fails if emacs started with -nw Jan D.
2015-03-23 6:32 ` Mario Becroft
2015-03-23 17:34 ` Glenn Morris
2015-03-23 20:26 ` Mario Becroft
2015-03-24 1:44 ` Glenn Morris
2015-03-29 3:42 ` Mario Becroft
2015-03-29 8:45 ` Jan D.
2015-03-29 8:52 ` Mario Becroft
2015-03-29 15:01 ` Eli Zaretskii
2015-03-29 17:09 ` Jan Djärv [this message]
2015-03-29 17:20 ` Eli Zaretskii
2015-03-29 19:18 ` Jan D.
2015-03-29 21:17 ` Stefan Monnier
2015-03-30 6:32 ` Jan D.
2015-03-30 13:58 ` Stefan Monnier
2015-03-30 14:36 ` Eli Zaretskii
2015-03-30 20:51 ` Stefan Monnier
2015-03-31 2:34 ` Eli Zaretskii
2015-03-31 13:26 ` Stefan Monnier
2015-03-31 14:03 ` Eli Zaretskii
2015-03-31 21:07 ` Stefan Monnier
2015-04-01 2:38 ` Eli Zaretskii
2015-04-01 3:55 ` Stefan Monnier
2015-03-30 14:47 ` Eli Zaretskii
2015-03-31 14:14 ` Nicolas Petton
2015-03-31 21:08 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=551831DC.6010406@swipnet.se \
--to=jan.h.d@swipnet.se \
--cc=19175@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=mb@becroft.co.nz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).