From: Pip Cet via "Emacs development discussions." <emacs-devel@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gerd.moellmann@gmail.com, ofv@wanadoo.es, emacs-devel@gnu.org,
eller.helmut@gmail.com, acorallo@gnu.org
Subject: Re: Some experience with the igc branch
Date: Sun, 29 Dec 2024 17:14:44 +0000 [thread overview]
Message-ID: <87o70u2z07.fsf@protonmail.com> (raw)
In-Reply-To: <8634i6r3zw.fsf@gnu.org>
"Eli Zaretskii" <eliz@gnu.org> writes:
>> Date: Sun, 29 Dec 2024 12:39:53 +0000
>> From: Pip Cet <pipcet@protonmail.com>
>> Cc: gerd.moellmann@gmail.com, ofv@wanadoo.es, emacs-devel@gnu.org, eller.helmut@gmail.com, acorallo@gnu.org
>>
>> >> Instead, we call the SIGSEGV handler directly on the other thread,
>> >> passing in the same siginfo structure.
>> >
>> > How can we call the SIGSEGV handler directly from another thread? And
>>
>> It's a C function. We call it.
>
> We need to know its name or its address to do that. It is not our
> function.
sigaction gives us the pointer.
>> > how will that thread know it needs to call the handler in the first
>> > place?
>>
>> We'd like to just use pthread_cond_signal, but to be POSIXly correct we
>> need to do so from another thread.
>
> Ouch!
There are ways around that, but I'm liking this aspect less and less.
Effectively, macOS and Windows run the exception handler with signals
blocked (Windows doesn't have any; the macOS exception handling
mechanism blocks signals on both threads, IIUC). If we do the same on
POSIX, by adding all Emacs signals to the sigmask for the MPS SIGSEGV
action, it should be safe to leave it in place. (We would still need to
leave the MPS signals unblocked, of course).
I *think* that's still safe, but I have to think about it some more.
As for the current scratch/igc code, we could use it and fix it one
signal at a time.
SIGIO/SIGPOLL don't need to be delayed
SIGPROF doesn't need to be delayed if it simply records "in GC"
SIGCHLD: already fixed by Helmut. If that fix is unacceptable, we
can clear delayed SIGCHLD signals before we create a new
process, which would mean Emacs doesn't use extra PIDs.
SIGALRM: difficult. Does this need to run on the main thread?
I'll have to look at the code.
SIGINT, SIGUSR*: very difficult.
>> >> > how will it know which MPS function to call?
>> >>
>> >> The MPS SIGSEGV handler is obtained by calling sigaction.
>> >
>> > That's unreliable: it assumes that no one else calls sigaction after
>> > MPS, or changes the chain of handlers in some other way.
>>
>> It merely assumes that any such modifications call our signal handler
>> with the right arguments, which is precisely what MPS assumes anyway.
>
> Sorry, I don't follow.
Let's delay this particular discussion until we actually have decided
the other problems aren't severe enough to kill the allocation thread
proposal?
Pip
next prev parent reply other threads:[~2024-12-29 17:14 UTC|newest]
Thread overview: 227+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-22 15:40 Some experience with the igc branch Óscar Fuentes
2024-12-22 17:18 ` Gerd Möllmann
2024-12-22 17:29 ` Gerd Möllmann
2024-12-22 17:41 ` Pip Cet via Emacs development discussions.
2024-12-22 17:56 ` Gerd Möllmann
2024-12-22 19:11 ` Óscar Fuentes
2024-12-23 0:05 ` Pip Cet via Emacs development discussions.
2024-12-23 1:00 ` Óscar Fuentes
2024-12-24 22:34 ` Pip Cet via Emacs development discussions.
2024-12-25 4:25 ` Freezing frame with igc Gerd Möllmann
2024-12-25 11:19 ` Pip Cet via Emacs development discussions.
2024-12-25 11:55 ` Óscar Fuentes
2024-12-23 3:42 ` Some experience with the igc branch Gerd Möllmann
2024-12-23 6:27 ` Jean Louis
2024-12-22 20:29 ` Helmut Eller
2024-12-22 20:50 ` Gerd Möllmann
2024-12-22 22:26 ` Pip Cet via Emacs development discussions.
2024-12-23 3:23 ` Gerd Möllmann
[not found] ` <m234ieddeu.fsf_-_@gmail.com>
[not found] ` <87ttaueqp9.fsf@protonmail.com>
[not found] ` <m2frme921u.fsf@gmail.com>
[not found] ` <87ldw6ejkv.fsf@protonmail.com>
[not found] ` <m2bjx2h8dh.fsf@gmail.com>
2024-12-23 14:45 ` Make Signal handling patch platform-dependent? Pip Cet via Emacs development discussions.
2024-12-23 14:54 ` Gerd Möllmann
2024-12-23 15:11 ` Eli Zaretskii
2024-12-23 13:35 ` Some experience with the igc branch Eli Zaretskii
2024-12-23 14:03 ` Discussion with MPS people Gerd Möllmann
2024-12-23 14:04 ` Gerd Möllmann
2024-12-23 15:07 ` Some experience with the igc branch Pip Cet via Emacs development discussions.
2024-12-23 15:26 ` Gerd Möllmann
2024-12-23 16:03 ` Pip Cet via Emacs development discussions.
2024-12-23 16:44 ` Eli Zaretskii
2024-12-23 17:16 ` Pip Cet via Emacs development discussions.
2024-12-23 18:35 ` Eli Zaretskii
2024-12-23 18:48 ` Gerd Möllmann
2024-12-23 19:25 ` Eli Zaretskii
2024-12-23 20:30 ` Benjamin Riefenstahl
2024-12-23 23:39 ` Pip Cet via Emacs development discussions.
2024-12-24 12:14 ` Eli Zaretskii
2024-12-24 13:18 ` Pip Cet via Emacs development discussions.
2024-12-24 13:42 ` Benjamin Riefenstahl
2024-12-24 3:37 ` Eli Zaretskii
2024-12-24 8:48 ` Benjamin Riefenstahl
2024-12-24 13:52 ` Eli Zaretskii
2024-12-24 13:54 ` Benjamin Riefenstahl
2024-12-23 17:44 ` Gerd Möllmann
2024-12-23 19:00 ` Eli Zaretskii
2024-12-23 19:37 ` Eli Zaretskii
2024-12-23 20:49 ` Gerd Möllmann
2024-12-23 21:43 ` Helmut Eller
2024-12-23 21:49 ` Pip Cet via Emacs development discussions.
2024-12-23 21:58 ` Helmut Eller
2024-12-23 23:20 ` Pip Cet via Emacs development discussions.
2024-12-24 5:38 ` Helmut Eller
2024-12-24 6:27 ` Gerd Möllmann
2024-12-24 10:09 ` Pip Cet via Emacs development discussions.
2024-12-24 4:05 ` Gerd Möllmann
2024-12-24 8:50 ` Gerd Möllmann
2024-12-24 6:03 ` SIGPROF + SIGCHLD and igc Gerd Möllmann
2024-12-24 8:23 ` Helmut Eller
2024-12-24 8:39 ` Gerd Möllmann
2024-12-25 9:22 ` Helmut Eller
2024-12-25 9:43 ` Gerd Möllmann
2024-12-24 13:05 ` Eli Zaretskii
2024-12-25 10:46 ` Helmut Eller
2024-12-25 12:45 ` Eli Zaretskii
2024-12-24 12:54 ` Eli Zaretskii
2024-12-24 12:59 ` Gerd Möllmann
2024-12-27 8:08 ` Helmut Eller
2024-12-27 8:51 ` Eli Zaretskii
2024-12-27 14:53 ` Helmut Eller
2024-12-27 15:09 ` Pip Cet via Emacs development discussions.
2024-12-27 15:19 ` Eli Zaretskii
2024-12-29 18:50 ` Helmut Eller
2024-12-29 19:05 ` Eli Zaretskii
2024-12-29 19:34 ` Helmut Eller
2024-12-29 20:08 ` Eli Zaretskii
2024-12-29 20:50 ` Helmut Eller
2024-12-27 8:55 ` Gerd Möllmann
2024-12-27 15:40 ` Helmut Eller
2024-12-27 15:53 ` Gerd Möllmann
2024-12-27 11:36 ` Pip Cet via Emacs development discussions.
2024-12-27 16:14 ` Helmut Eller
2024-12-28 10:02 ` Helmut Eller
2024-12-28 10:50 ` Eli Zaretskii
2024-12-28 13:52 ` Helmut Eller
2024-12-28 14:25 ` Eli Zaretskii
2024-12-28 16:46 ` Helmut Eller
2024-12-28 17:35 ` Eli Zaretskii
2024-12-28 18:08 ` Helmut Eller
2024-12-28 19:00 ` Eli Zaretskii
2024-12-28 19:28 ` Helmut Eller
2024-12-28 19:32 ` Pip Cet via Emacs development discussions.
2024-12-28 19:51 ` Helmut Eller
2024-12-28 20:43 ` Pip Cet via Emacs development discussions.
2024-12-29 5:44 ` Eli Zaretskii
2024-12-29 12:15 ` Pip Cet via Emacs development discussions.
2024-12-29 20:44 ` Pip Cet via Emacs development discussions.
2024-12-30 15:03 ` Eli Zaretskii
2024-12-30 16:46 ` Pip Cet via Emacs development discussions.
2024-12-30 17:47 ` Eli Zaretskii
2024-12-30 17:53 ` Daniel Colascione
2024-12-30 18:25 ` Eli Zaretskii
2024-12-30 21:04 ` Pip Cet via Emacs development discussions.
2024-12-31 12:35 ` Eli Zaretskii
2024-12-31 13:57 ` Pip Cet via Emacs development discussions.
2024-12-31 14:20 ` Eli Zaretskii
2024-12-23 23:37 ` Some experience with the igc branch Pip Cet via Emacs development discussions.
2024-12-24 4:03 ` Gerd Möllmann
2024-12-24 10:25 ` Pip Cet via Emacs development discussions.
2024-12-24 10:50 ` Gerd Möllmann
2024-12-24 13:15 ` Eli Zaretskii
2024-12-24 12:26 ` Eli Zaretskii
2024-12-24 12:56 ` Gerd Möllmann
2024-12-24 13:19 ` Pip Cet via Emacs development discussions.
2024-12-24 13:38 ` Gerd Möllmann
2024-12-24 13:46 ` Eli Zaretskii
2024-12-24 14:12 ` Gerd Möllmann
2024-12-24 14:40 ` Eli Zaretskii
2024-12-25 4:56 ` Gerd Möllmann
2024-12-25 12:19 ` Eli Zaretskii
2024-12-25 12:50 ` Gerd Möllmann
2024-12-25 13:00 ` Eli Zaretskii
2024-12-25 13:08 ` Gerd Möllmann
2024-12-25 13:26 ` Eli Zaretskii
2024-12-25 14:07 ` Gerd Möllmann
2024-12-25 14:43 ` Helmut Eller
2024-12-25 14:59 ` Eli Zaretskii
2024-12-25 20:44 ` Helmut Eller
2024-12-26 6:29 ` Eli Zaretskii
2024-12-26 8:02 ` Helmut Eller
2024-12-26 9:32 ` Eli Zaretskii
2024-12-26 12:24 ` Helmut Eller
2024-12-26 15:23 ` Eli Zaretskii
2024-12-26 23:29 ` Paul Eggert
2024-12-27 7:57 ` Eli Zaretskii
2024-12-27 19:34 ` Paul Eggert
2024-12-28 8:06 ` Eli Zaretskii
2024-12-28 20:44 ` Paul Eggert
2024-12-29 5:47 ` Eli Zaretskii
2024-12-29 19:09 ` Paul Eggert
2024-12-29 19:20 ` Eli Zaretskii
2024-12-29 19:30 ` Paul Eggert
2024-12-29 20:01 ` Eli Zaretskii
2024-12-30 7:55 ` Paul Eggert
2024-12-25 15:02 ` Gerd Möllmann
2024-12-25 13:09 ` Eli Zaretskii
2024-12-25 13:46 ` Gerd Möllmann
2024-12-25 14:37 ` Eli Zaretskii
2024-12-25 14:57 ` Gerd Möllmann
2024-12-25 15:28 ` Eli Zaretskii
2024-12-25 15:49 ` Gerd Möllmann
2024-12-25 17:26 ` Eli Zaretskii
2024-12-26 5:25 ` Gerd Möllmann
2024-12-26 7:43 ` Eli Zaretskii
2024-12-26 7:57 ` Gerd Möllmann
2024-12-26 11:56 ` Eli Zaretskii
2024-12-26 15:27 ` Stefan Kangas
2024-12-26 19:51 ` Gerd Möllmann
2024-12-27 9:45 ` Gerd Möllmann
2024-12-27 13:56 ` Gerd Möllmann
2024-12-27 15:01 ` Pip Cet via Emacs development discussions.
2024-12-27 15:28 ` Eli Zaretskii
2024-12-27 15:47 ` Pip Cet via Emacs development discussions.
2024-12-27 16:18 ` Gerd Möllmann
2024-12-28 9:10 ` Stefan Kangas
2024-12-28 9:20 ` Gerd Möllmann
2024-12-28 9:24 ` Gerd Möllmann
2024-12-27 16:05 ` Gerd Möllmann
2024-12-27 17:00 ` Pip Cet via Emacs development discussions.
2024-12-27 16:37 ` Eli Zaretskii
2024-12-27 17:26 ` Pip Cet via Emacs development discussions.
2024-12-27 19:12 ` Gerd Möllmann
2024-12-28 7:36 ` Eli Zaretskii
2024-12-28 12:35 ` Pip Cet via Emacs development discussions.
2024-12-28 12:51 ` Gerd Möllmann
2024-12-28 13:13 ` Eli Zaretskii
2024-12-28 9:29 ` Eli Zaretskii
2024-12-28 13:12 ` Pip Cet via Emacs development discussions.
2024-12-28 14:08 ` Eli Zaretskii
2024-12-27 18:21 ` Gerd Möllmann
2024-12-27 19:23 ` Pip Cet via Emacs development discussions.
2024-12-27 20:28 ` Gerd Möllmann
2024-12-28 10:39 ` Eli Zaretskii
2024-12-28 11:07 ` Gerd Möllmann
2024-12-28 11:23 ` Gerd Möllmann
2024-12-28 14:04 ` Pip Cet via Emacs development discussions.
2024-12-28 14:25 ` Gerd Möllmann
2024-12-28 16:27 ` Eli Zaretskii
2024-12-28 6:08 ` Gerd Möllmann
2024-12-25 17:40 ` Pip Cet via Emacs development discussions.
2024-12-25 17:51 ` Eli Zaretskii
2024-12-26 15:24 ` Pip Cet via Emacs development discussions.
2024-12-26 15:57 ` Eli Zaretskii
2024-12-27 14:34 ` Pip Cet via Emacs development discussions.
2024-12-27 15:58 ` Eli Zaretskii
2024-12-27 16:42 ` Pip Cet via Emacs development discussions.
2024-12-28 18:02 ` Eli Zaretskii
2024-12-28 21:05 ` Pip Cet via Emacs development discussions.
2024-12-29 6:15 ` Eli Zaretskii
2024-12-29 12:39 ` Pip Cet via Emacs development discussions.
2024-12-29 13:52 ` Eli Zaretskii
2024-12-29 17:14 ` Pip Cet via Emacs development discussions. [this message]
2024-12-26 5:27 ` Gerd Möllmann
2024-12-26 5:29 ` Gerd Möllmann
2024-12-24 21:18 ` Pip Cet via Emacs development discussions.
2024-12-25 5:23 ` Gerd Möllmann
2024-12-25 10:48 ` Pip Cet via Emacs development discussions.
2024-12-25 13:40 ` Stefan Kangas
2024-12-25 17:03 ` Pip Cet via Emacs development discussions.
2024-12-26 5:22 ` Gerd Möllmann
2024-12-26 7:33 ` Eli Zaretskii
2024-12-26 8:02 ` Gerd Möllmann
2024-12-26 15:50 ` Stefan Kangas
2024-12-26 16:13 ` Eli Zaretskii
2024-12-26 19:40 ` Gerd Möllmann
2024-12-26 17:01 ` Pip Cet via Emacs development discussions.
2024-12-26 19:45 ` Gerd Möllmann
2024-12-26 20:05 ` Eli Zaretskii
2024-12-26 20:12 ` Gerd Möllmann
2024-12-26 16:12 ` Stefan Kangas
2024-12-26 17:05 ` Eli Zaretskii
2024-12-25 11:48 ` Helmut Eller
2024-12-25 11:58 ` Gerd Möllmann
2024-12-25 12:52 ` Eli Zaretskii
2024-12-25 12:31 ` Eli Zaretskii
2024-12-25 12:54 ` Gerd Möllmann
2024-12-24 12:11 ` Eli Zaretskii
-- strict thread matches above, loose matches on Subject: below --
2024-12-27 9:49 Sean Devlin
2024-12-27 12:34 ` Eli Zaretskii
2024-12-28 1:55 ` Sean Devlin
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=87o70u2z07.fsf@protonmail.com \
--to=emacs-devel@gnu.org \
--cc=acorallo@gnu.org \
--cc=eliz@gnu.org \
--cc=eller.helmut@gmail.com \
--cc=gerd.moellmann@gmail.com \
--cc=ofv@wanadoo.es \
--cc=pipcet@protonmail.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 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).