Remix.run Logo
charcircuit a day ago

I don't understand how this is still a problem in 2026. Signals should just come in via a new thread and it would solve all the complexity around them. Everyone has known the current way it works is extremely limited in what you can safely do. This whole pause the execution of what's currently running and then run some extra code somewhere else turned out to not be a good idea.

inigyou a day ago | parent [-]

They should come in via signalfd unless they're the moral equivalent of a non-maskable interrupt.

shawn_w a day ago | parent | next [-]

And for people who want to use something other than Linux?

lmz 19 hours ago | parent [-]

BSD kqueue, Solaris ports.

charcircuit a day ago | parent | prev [-]

That is also good, but requires apps be rewritten to read from signalfd. With the separate thread approach you can get away without having to rewrite programs.

inigyou 13 hours ago | parent [-]

Incorrect. With the separate thread approach you added a lot of new race conditions.

charcircuit 6 hours ago | parent [-]

In practice I don't think there would be that many. You could even pause execution of the thread that would have gotten the signal to make it even safer.