Truly independent web browser
![]() 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. |
||
---|---|---|
AK | ||
Base/etc | ||
ELFLoader | ||
Kernel | ||
LibC | ||
Userland | ||
VirtualFileSystem | ||
Widgets | ||
.gitignore | ||
Banner.txt |