emacs-devel
[Top][All Lists]
Advanced

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

Re: scratch/igc: Implications of MPS being asynchronous


From: Eli Zaretskii
Subject: Re: scratch/igc: Implications of MPS being asynchronous
Date: Sun, 12 Jan 2025 17:09:08 +0200

> From: Óscar Fuentes <ofv@wanadoo.es>
> Cc: Pip Cet <pipcet@protonmail.com>,  stefankangas@gmail.com,
>   emacs-devel@gnu.org,  gerd@gnu.org
> Date: Sun, 12 Jan 2025 14:58:19 +0100
> 
> Can an Emacs C module make (indirect or direct) use of the MPS
> functionality while running on another thread?

Emacs modules are not supposed to manipulate Lisp objects on another
thread, because doing that will cause trouble, given the global state
of Emacs.

> If the answer is affirmative, let's suppose that the Emacs C module
> running on another thread causes a call to some MPS gc function at some
> time. Does MPS interrupt the main Emacs thread to do the gc?

If you trigger MPS by modifying Lisp objects, or data structures that
include references to Lisp objects, from a non-Lisp thread, you are
asking for trouble.  Just think about it: the Emacs Lisp thread runs,
while some other thread modifies its data behind its back.



reply via email to

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