kernel: Fix sending signals to threads that are in a long syscall

This commit is contained in:
apio 2023-09-18 07:19:29 +02:00
parent 24679e06dd
commit 4d6c8aa8bf
Signed by: apio
GPG Key ID: B8A7D06E42258954

View File

@ -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(&regs))
{
interrupted = true;
wake_up();