bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#4970: 23.1; Emacs Gtk running nuts


From: Jan Djärv
Subject: bug#4970: 23.1; Emacs Gtk running nuts
Date: Fri, 20 Nov 2009 13:11:15 +0100
User-agent: Thunderbird 2.0.0.23 (X11/20090817)

Eli Zaretskii skrev:
Date: Fri, 20 Nov 2009 11:37:01 +0100
From: Jan =?UTF-8?Q?Dj=C3=A4rv?= <jan.h.d@swipnet.se>
Cc: 4970@emacsbugs.donarmstrong.com

Dan Nicolaescu skrev:
Jan Djärv <jan.h.d@swipnet.se> writes:

  > What happens is that reading from the terminal fails and Emacs tries
  > to remove that terminal, but in term.c:
> > if (last_terminal)
  >       error ("Attempt to delete the sole terminal device with live frames");
> > > which goes back to the command loop, tries to read agan, fails, and
  > tries to delete the terminal again, and so on.
> > If you remove this check, Emacs exits. But I suppose it is there for
  > a reason, but I don't know what.  Anybody?

It's there so that if you do:
emacs -Q -nw
C-x 5 0
does not exit emacs.
Well, the check in term.c isn't preventing that. It is the check in frame.c delete_frame that does that:

   if (NILP (force) && !other_visible_frames (f))
     error ("Attempt to delete the sole visible or iconified frame");

What about delete-terminal?

Rhat check in term.c prevents delete-terminal from working when the FORCE argument is t. Deleting an X11 terminal woth FORCE set to t makes a core dump...


And btw, are there any live frames when the test in term.c is made, in
the recipe to reproduce the original bug?  If not, maybe it needs to
check for live frames explicitly.

Yes there are. When read_socket_hook returns -2 and this is the last terminal, a SIGHUP is sent to ourselves (why not just call shutdown_emacs and exit?) and Fdelete_terminal is called. So frames has not been removed yet.

        Jan D.





reply via email to

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