From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jan =?UTF-8?Q?Dj=C3=A4rv?= Newsgroups: gmane.emacs.bugs Subject: bug#19175: 24.4; make-frame-on-display fails if emacs started with -nw Date: Sun, 29 Mar 2015 19:09:48 +0200 Message-ID: <551831DC.6010406@swipnet.se> References: <87wq6jrjis.fsf@ak2.becroft.co.nz> <0E7A721E-2256-4932-9832-ED19A86FE000@swipnet.se> <87bnjc5v0r.fsf@ak2.becroft.co.nz> <9800C187-E0D5-4431-865C-7CD57D019D6B@swipnet.se> <83r3s7zw2i.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1427649084 1494 80.91.229.3 (29 Mar 2015 17:11:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 29 Mar 2015 17:11:24 +0000 (UTC) Cc: mb@becroft.co.nz, 19175@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Mar 29 19:11:12 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YcGjv-0005Nk-Sr for geb-bug-gnu-emacs@m.gmane.org; Sun, 29 Mar 2015 19:11:12 +0200 Original-Received: from localhost ([::1]:57662 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YcGjv-0001bD-4F for geb-bug-gnu-emacs@m.gmane.org; Sun, 29 Mar 2015 13:11:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47661) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YcGjr-0001aZ-Q3 for bug-gnu-emacs@gnu.org; Sun, 29 Mar 2015 13:11:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YcGjn-0007Nx-G3 for bug-gnu-emacs@gnu.org; Sun, 29 Mar 2015 13:11:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:50008) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YcGjn-0007Nr-CR for bug-gnu-emacs@gnu.org; Sun, 29 Mar 2015 13:11:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YcGjm-0002By-Df for bug-gnu-emacs@gnu.org; Sun, 29 Mar 2015 13:11:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jan =?UTF-8?Q?Dj=C3=A4rv?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Mar 2015 17:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19175 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 19175-submit@debbugs.gnu.org id=B19175.14276490068363 (code B ref 19175); Sun, 29 Mar 2015 17:11:02 +0000 Original-Received: (at 19175) by debbugs.gnu.org; 29 Mar 2015 17:10:06 +0000 Original-Received: from localhost ([127.0.0.1]:39784 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YcGiq-0002An-Ho for submit@debbugs.gnu.org; Sun, 29 Mar 2015 13:10:05 -0400 Original-Received: from mailfe06.swip.net ([212.247.154.161]:55636 helo=swip.net) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YcGim-0002AB-Q6 for 19175@debbugs.gnu.org; Sun, 29 Mar 2015 13:10:02 -0400 X-T2-Spam-Status: No, hits=-0.0 required=5.0 tests=BAYES_40 Original-Received: from hosdjarv.se (account mj138573@tele2.se [46.59.42.57] verified) by mailfe06.swip.net (CommuniGate Pro SMTP 5.4.4) with ESMTPA id 581471771; Sun, 29 Mar 2015 19:09:52 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 In-Reply-To: <83r3s7zw2i.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:101024 Archived-At: Den 2015-03-29 17:01, Eli Zaretskii skrev: >> From: "Jan D." >> 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.