Unbreak signal delivery to userspace again.

My my, this code is quite fickle.
This commit is contained in:
Andreas Kling 2018-11-08 00:07:56 +01:00
parent 1dbc340da8
commit 27fded7002
Notes: sideshowbarker 2024-07-19 18:32:02 +09:00

View File

@ -21,7 +21,7 @@
//#define DEBUG_IO
//#define TASK_DEBUG
//#define FORK_DEBUG
//#define SIGNAL_DEBUG
#define SIGNAL_DEBUG
#define MAX_PROCESS_GIDS 32
// FIXME: Only do a single validation for accesses that don't span multiple pages.
@ -805,6 +805,9 @@ void Process::dispatch_signal(byte signal)
m_pending_signals &= ~(1 << signal);
// FIXME: This state is such a hack. It avoids trouble if 'current' is the process receiving a signal.
set_state(Skip1SchedulerPass);
#ifdef SIGNAL_DEBUG
dbgprintf("signal: Okay, %s(%u) {%s} has been primed with signal handler %w:%x\n", name().characters(), pid(), toString(state()), m_tss.cs, m_tss.eip);
#endif