diff options
author | Drew Stratford <drewstratford@outlook.com> | 2019-09-05 01:14:54 +1200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-09-05 16:37:09 +0200 |
commit | 81d0f96f200d81266554b3c6efbf8a7c9737cfe1 (patch) | |
tree | 3ee3b10635a81208b05d6853f16f525801f36043 /AK/JsonArray.cpp | |
parent | 259a1d56b04809690716fe0576fad9ea12782ce9 (diff) | |
download | serenity-81d0f96f200d81266554b3c6efbf8a7c9737cfe1.zip |
Kernel: Use user stack for signal handlers.
This commit drastically changes how signals are handled.
In the case that an unblocked thread is signaled it works much
in the same way as previously. However, when a blocking syscall
is interrupted, we set up the signal trampoline on the user
stack, complete the blocking syscall, return down the kernel
stack and then jump to the handler. This means that from the
kernel stack's perspective, we only ever get one system call deep.
The signal trampoline has also been changed in order to properly
store the return value from system calls. This is necessary due
to the new way we exit from signaled system calls.
Diffstat (limited to 'AK/JsonArray.cpp')
0 files changed, 0 insertions, 0 deletions