From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Tassilo Horn <tassilo@member.fsf.org>
Cc: Chong Yidong <cyd@stupidchicken.com>,
emacs-devel@gnu.org, schwab@linux-m68k.org,
James Cloos <cloos@jhcloos.com>, Eli Zaretskii <eliz@gnu.org>,
"Jan D." <jan.h.d@swipnet.se>, Ulrich Mueller <ulm@gentoo.org>
Subject: Re: Killing a frame sometimes kills emacs
Date: Thu, 17 Nov 2011 21:05:14 -0500 [thread overview]
Message-ID: <jwvehx6kx9t.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <8762ijjbzu.fsf@tsdh.uni-koblenz.de> (Tassilo Horn's message of "Thu, 17 Nov 2011 11:10:13 +0100")
> I did that by using the patch below for about one month. Since then,
> the crashes I had are gone, and working with multiple emacs X frames is
> fun again. Should I go ahead and commit?
Good news, thanks.
> --8<---------------cut here---------------start------------->8---
> === modified file 'src/frame.c'
> --- src/frame.c 2011-11-17 09:09:20 +0000
> +++ src/frame.c 2011-11-17 10:05:11 +0000
> @@ -1358,7 +1358,11 @@
> /* If needed, delete the terminal that this frame was on.
> (This must be done after the frame is killed.) */
> - terminal->reference_count--;
> +
> + // FIXME: Deleting the terminal crashes emacs because of a GTK
> + // bug. See the thread starting with <87d3flnxoo.fsf@thinkpad.tsdh.de>
> + // on emacs-devel.
> + // terminal->reference_count--;
> if (terminal->reference_count == 0)
> {
> Lisp_Object tmp;
> --8<---------------cut here---------------end--------------->8---
To avoid the risk of reaching 0 via wrap-around (yes, I know that
creating a billion frames in the life of a single session is unlikely,
but still), you could do:
/* If needed, delete the terminal that this frame was on.
(This must be done after the frame is killed.) */
terminal->reference_count--;
#ifdef USE_GTK
/* ... (Use C-style not C++ style comments) ... */
if (terminal->reference_count == 0 && terminal->type == output_x_window)
terminal->reference_count = 1;
#endif
if (terminal->reference_count == 0)
{
Lisp_Object tmp;
Alternatively you could get the same result by changing the code that
initializes terminal->reference_count so that it starts at 1 rather than
at 0.
Stefan
next prev parent reply other threads:[~2011-11-18 2:05 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-31 20:16 Killing a frame sometimes kills emacs Tassilo Horn
2011-08-31 20:51 ` joakim
2011-08-31 23:06 ` chad
2011-09-01 2:53 ` Eli Zaretskii
2011-09-01 7:04 ` Tassilo Horn
2011-09-01 10:09 ` Tassilo Horn
2011-09-01 10:27 ` Eli Zaretskii
2011-09-01 10:42 ` Tassilo Horn
2011-09-01 10:56 ` Eli Zaretskii
2011-09-01 11:09 ` Tassilo Horn
2011-09-01 10:33 ` Andreas Schwab
2011-09-01 10:45 ` Tassilo Horn
2011-09-01 12:47 ` Jan D.
2011-09-01 13:05 ` Tassilo Horn
2011-09-01 15:29 ` Eli Zaretskii
2011-09-01 19:30 ` Ken Raeburn
2011-09-02 15:02 ` Andreas Schwab
2011-10-11 6:46 ` Tassilo Horn
2011-10-11 12:53 ` Stefan Monnier
2011-10-11 14:53 ` Tassilo Horn
2011-10-11 17:38 ` James Cloos
2011-10-11 19:17 ` Tassilo Horn
2011-10-11 19:49 ` Tassilo Horn
2011-10-12 2:04 ` Chong Yidong
2011-10-12 6:49 ` Tassilo Horn
2011-10-12 12:57 ` Stefan Monnier
2011-11-17 10:10 ` Tassilo Horn
2011-11-17 11:18 ` Chong Yidong
2011-11-17 13:45 ` Tassilo Horn
2011-11-17 16:34 ` Paul Eggert
2011-11-17 16:58 ` Tassilo Horn
2011-11-18 2:41 ` Chong Yidong
2011-11-18 2:05 ` Stefan Monnier [this message]
2011-11-18 9:38 ` Tassilo Horn
2012-01-20 23:29 ` andres.ramirez
2012-01-21 0:34 ` Glenn Morris
2012-01-21 8:02 ` andres.ramirez
2012-01-20 23:29 ` andres.ramirez
2011-10-11 17:56 ` Jan Djärv
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvehx6kx9t.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=cloos@jhcloos.com \
--cc=cyd@stupidchicken.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=jan.h.d@swipnet.se \
--cc=schwab@linux-m68k.org \
--cc=tassilo@member.fsf.org \
--cc=ulm@gentoo.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.