summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2018-11-07 19:03:44 +0100
committerAndreas Kling <awesomekling@gmail.com>2018-11-07 19:03:44 +0100
commitc8b308910efa1523f24a935e8d1d38ceb316637f (patch)
treebdebdb4b08c78cca51102e43ebb0a9a0f8ade494 /Kernel
parentdd887e158bbd4ed2b3dc2ff78c2c29f5b7e8f4de (diff)
downloadserenity-c8b308910efa1523f24a935e8d1d38ceb316637f.zip
Signals to processes in userspace now work again.
Ugh, how am I going to dispatch signals to processes in the kernel?
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/Process.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp
index 2468c8814b..4071203e67 100644
--- a/Kernel/Process.cpp
+++ b/Kernel/Process.cpp
@@ -789,7 +789,7 @@ void Process::dispatch_signal(byte signal)
if ((ret_cs & 3) == 0) {
// FIXME: Handle send_signal to process currently in kernel code.
- kprintf("Boo! dispatch_signal with return to %w:%x\n", ret_cs, ret_eip);
+ kprintf("Boo! dispatch_signal in %s(%u) with return to %w:%x\n", name().characters(), pid(), ret_cs, ret_eip);
ASSERT_NOT_REACHED();
}
@@ -827,6 +827,8 @@ void Process::dispatch_signal(byte signal)
push_value_on_stack(m_return_from_signal_trampoline.get());
+ m_pending_signals &= ~(1 << signal);
+
dbgprintf("signal: Okay, %s(%u) has been primed\n", name().characters(), pid());
}