diff --git a/kernel/src/thread/Thread.cpp b/kernel/src/thread/Thread.cpp index 8907c917..ebac3c37 100644 --- a/kernel/src/thread/Thread.cpp +++ b/kernel/src/thread/Thread.cpp @@ -211,7 +211,7 @@ void Thread::send_signal(int signo) check(signo > 0 && signo <= NSIG); pending_signals.set(signo - 1, true); - if (state == ThreadState::Waiting || state == ThreadState::Sleeping) + if (state == ThreadState::Waiting || state == ThreadState::Sleeping || is_in_kernel(®s)) { interrupted = true; wake_up();