kernel: Fix sending signals to threads that are in a long syscall
This commit is contained in:
parent
24679e06dd
commit
4d6c8aa8bf
@ -211,7 +211,7 @@ void Thread::send_signal(int signo)
|
|||||||
check(signo > 0 && signo <= NSIG);
|
check(signo > 0 && signo <= NSIG);
|
||||||
pending_signals.set(signo - 1, true);
|
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;
|
interrupted = true;
|
||||||
wake_up();
|
wake_up();
|
||||||
|
Loading…
Reference in New Issue
Block a user