all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: Pip Cet <pipcet@gmail.com>
Cc: 38748@debbugs.gnu.org, rpluim@gmail.com, andreyk.mad@gmail.com,
	jguenther@gmail.com
Subject: bug#38748: 28.0.50; crash on MacOS 10.15.2
Date: Sat, 11 Jan 2020 19:07:15 +0000	[thread overview]
Message-ID: <20200111190715.GA40876@breton.holly.idiocy.org> (raw)
In-Reply-To: <CAOqdjBfo2L3Ue1ytnZK6Akxu8K94xww4TRmNO4bjSFgCeonNLQ@mail.gmail.com>

On Sat, Jan 11, 2020 at 02:13:43PM +0000, Pip Cet wrote:
> On Sat, Jan 11, 2020 at 1:59 PM Alan Third <alan@idiocy.org> wrote:
> > > It's my impression that macOS forces us to run in several threads,
> > > even though we don't really want to do so. For example, changeFont in
> > > nsterm.m appears not to assume it's run on the main thread, but calls
> > > build_string, which sounds dangerous to me.
> >
> > What makes you think it’s assuming it may not be run on the main
> > thread?
> 
> The way it doesn't simply call Lisp, but sets up an event to be
> handled in the event loop. How is changeFont actually called? Would it
> be safe to call Lisp from it?

changeFont is called during the NS run (event) loop which I don’t
think is safe for calling lisp.

Effectively Emacs requests the font panel to be opened and then any
changes made in it are handled as though they’re user input events. I
remember looking into it because it doesn’t work like on other
toolkits, but because it’s this detached thing that only communicates
through input events while Emacs continues running it makes it
difficult to match its behaviour.

-- 
Alan Third





  reply	other threads:[~2020-01-11 19:07 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-26  9:47 bug#38748: 28.0.50; crash on MacOS 10.15.2 Andrii Kolomoiets
2019-12-26 13:04 ` Alan Third
2019-12-26 17:18   ` Eli Zaretskii
2019-12-27 11:28     ` Andrii Kolomoiets
2019-12-27 14:14       ` Eli Zaretskii
2019-12-29 19:01         ` Andrii Kolomoiets
2019-12-29 19:31           ` Eli Zaretskii
2020-01-01 20:42             ` Andrii Kolomoiets
2020-01-02 14:06               ` Eli Zaretskii
2020-01-08 17:39                 ` Robert Pluim
2020-01-08 19:18                   ` Pip Cet
2020-01-08 19:58                     ` Eli Zaretskii
2020-01-08 20:39                       ` Pip Cet
2020-01-09  3:30                         ` Eli Zaretskii
2020-01-10  7:32                           ` Pip Cet
2020-01-10  8:27                             ` Eli Zaretskii
2020-01-10  8:58                               ` Robert Pluim
2020-01-10  9:21                                 ` Eli Zaretskii
2020-01-10 10:18                                   ` Robert Pluim
2020-01-11  6:26                                     ` Pankaj Jangid
2020-01-11  8:08                                       ` Eli Zaretskii
2020-01-11 10:43                                         ` Pankaj Jangid
2020-01-11 12:14                                           ` Eli Zaretskii
2020-01-10  9:22                               ` Pip Cet
2020-01-10  9:33                                 ` Eli Zaretskii
2020-01-11 13:59                                 ` Alan Third
2020-01-11 14:13                                   ` Pip Cet
2020-01-11 19:07                                     ` Alan Third [this message]
2020-01-08 21:43                     ` Robert Pluim
2020-01-08 22:18                       ` Pip Cet
2020-01-08 22:23                         ` Robert Pluim
2020-01-09  7:51                           ` Robert Pluim
2020-01-09 10:07                             ` Eli Zaretskii
2020-01-09 10:31                               ` Robert Pluim
2020-01-09 14:10                                 ` Pip Cet
2020-01-09 14:16                                 ` Eli Zaretskii
2020-01-09 14:56                                   ` Robert Pluim
2020-01-09 17:06                                     ` Eli Zaretskii
2020-01-09 13:51                               ` Andrii Kolomoiets
2020-01-09 14:13                                 ` Robert Pluim
2020-01-09 14:16                                 ` Pip Cet
2020-01-09 14:29                                   ` Andrii Kolomoiets
2020-01-09 15:15                                   ` Robert Pluim
2020-01-11 18:37                                     ` Pieter van Oostrum
2020-01-11 18:43                                       ` Eli Zaretskii
2020-01-11 21:23                                         ` Pieter van Oostrum
2020-01-12  3:33                                           ` Eli Zaretskii
2020-01-11 19:14                                       ` Pip Cet
2020-01-11 21:36                                         ` Pieter van Oostrum
2020-01-04 16:48               ` Pieter van Oostrum
2020-01-04 17:25                 ` Alan Third
2020-01-05 19:41                   ` Pieter van Oostrum

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=20200111190715.GA40876@breton.holly.idiocy.org \
    --to=alan@idiocy.org \
    --cc=38748@debbugs.gnu.org \
    --cc=andreyk.mad@gmail.com \
    --cc=jguenther@gmail.com \
    --cc=pipcet@gmail.com \
    --cc=rpluim@gmail.com \
    /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.