Kernel: raise() now force sends signal
This commit is contained in:
parent
879706e6e9
commit
a152d0aac5
|
@ -867,15 +867,7 @@ namespace Kernel
|
|||
ASSERT(this == &Process::current());
|
||||
|
||||
CriticalScope _;
|
||||
|
||||
// FIXME: support raise with signal blocked
|
||||
Thread& current = Thread::current();
|
||||
if (current.add_signal(signal))
|
||||
{
|
||||
current.handle_signal(signal);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Thread::current().handle_signal(-signal);
|
||||
ASSERT_NOT_REACHED();
|
||||
}
|
||||
|
||||
|
|
|
@ -253,13 +253,17 @@ namespace Kernel
|
|||
}
|
||||
ASSERT(signal <= _SIGMAX);
|
||||
}
|
||||
else
|
||||
else if (signal > 0)
|
||||
{
|
||||
uint64_t full_pending_mask = m_signal_pending_mask | process().m_signal_pending_mask;
|
||||
uint64_t mask = 1ull << signal;
|
||||
ASSERT(full_pending_mask & mask);
|
||||
ASSERT(!(m_signal_block_mask & mask));
|
||||
}
|
||||
else
|
||||
{
|
||||
signal = -signal;
|
||||
}
|
||||
|
||||
uintptr_t& return_rsp = this->return_rsp();
|
||||
uintptr_t& return_rip = this->return_rip();
|
||||
|
|
Loading…
Reference in New Issue