mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-24 10:12:25 -05:00
03a8357e84
This is dirty but pretty cool! If we have a pending, unmasked signal for a process that's blocked inside the kernel, we set up alternate stacks for that process and unblock it to execute the signal handler. A slightly different return trampoline is used here: since we need to get back into the kernel, a dedicated syscall is used (sys$sigreturn.) This restores the TSS contents of the process to the state it was in while we were originally blocking in the kernel. NOTE: There's currently only one "kernel resume TSS" so signal nesting definitely won't work. |
||
---|---|---|
.. | ||
.gitignore | ||
cat.cpp | ||
clear.cpp | ||
date.cpp | ||
false.cpp | ||
ft.cpp | ||
ft2.cpp | ||
hostname.cpp | ||
id.cpp | ||
kill.cpp | ||
ls.cpp | ||
Makefile | ||
mm.cpp | ||
ps.cpp | ||
sh.cpp | ||
sleep.cpp | ||
strsignal.cpp | ||
true.cpp | ||
tst.cpp | ||
tty.cpp | ||
uname.cpp |