unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Tassilo Horn <tsdh@gnu.org>, martin rudalics <rudalics@gmx.at>
Cc: arash@gnu.org, 53871@debbugs.gnu.org
Subject: bug#53871: 29.0.50; Emacs freezes with new child-frame option
Date: Tue, 08 Feb 2022 17:09:23 +0200	[thread overview]
Message-ID: <83ee4dwg2k.fsf@gnu.org> (raw)
In-Reply-To: <87pmnxy7bu.fsf@gnu.org> (message from Tassilo Horn on Tue, 08 Feb 2022 11:35:17 +0100)

> From: Tassilo Horn <tsdh@gnu.org>
> Date: Tue, 08 Feb 2022 11:35:17 +0100
> Cc: 53871@debbugs.gnu.org
> 
> > 1) emacs -Q
> > 2) eval (setq show-paren-context-when-offscreen t) in scratch
> > 3) M-x find-library RET paren RET
> > 4) M-g c 13902 RET
> > 5) With the mouse cursor, grab the scroll bar and move down so far to
> >    get the context
> >    'Matches (defun show-paren--show-context-in-child-frame (text)'
> >    in the echo area.
> > 6) eval (setq show-paren-context-when-offscreen 'child-frame) in scratch
> > 7) Repeat 5) and Emacs freezes
> >
> > This is with repo-version 90eb6a7fe4 on Win10.
> 
> I can't reproduce with the slightly later version 9d1ae05442 on
> GNU/Linux with a pgtk build.  When scroll up and down (only so far as to
> keep point at the closing paren of the defun), I'll see the child frame
> displaying the "(defun ...)" line whenever I stop scrolling for a
> second.
> 
> After doing that for I while, I checked that `(frame-list)` still
> contains just a single frame.  How is that for you?  Do you have many
> frames in there?  And do you recover from the freeze?

The number of the frames is not the problem.  Yes, there's just one
frame on Windows as well.  And no, there's no way to recover, because
the implementation of this feature seems to cause on MS-Windows a
deadlock between two threads, one of which is the main thread.

On Windows, creating a frame involves sending a message to a separate
UI thread and waiting for that thread to respond, but in this
scenario, doing that seems to lead to some kind of deadlock, whereby
both threads wait for messages.

Martin, any ideas?  I can show the backtrace from the freeze, if that
helps.





  parent reply	other threads:[~2022-02-08 15:09 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-08  8:42 bug#53871: 29.0.50; Emacs freezes with new child-frame option Arash Esbati
2022-02-08 10:35 ` Tassilo Horn
2022-02-08 12:06   ` Arash Esbati
2022-02-08 12:09     ` Tassilo Horn
2022-02-08 15:09   ` Eli Zaretskii [this message]
2022-02-08 18:23     ` martin rudalics
2022-02-08 18:55       ` Eli Zaretskii
2022-02-09  0:41         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-02-09  3:33           ` Eli Zaretskii

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=83ee4dwg2k.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=53871@debbugs.gnu.org \
    --cc=arash@gnu.org \
    --cc=rudalics@gmx.at \
    --cc=tsdh@gnu.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 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).