1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 01:07:34 +00:00

Kernel: Don't disable interrupts during Process destruction.

This commit is contained in:
Andreas Kling 2019-03-27 14:38:32 +01:00
parent 1592612a60
commit a2fe5f8517

View file

@ -1285,9 +1285,11 @@ mode_t Process::sys$umask(mode_t mask)
}
int Process::reap(Process& process)
{
int exit_status;
{
InterruptDisabler disabler;
int exit_status = (process.m_termination_status << 8) | process.m_termination_signal;
exit_status = (process.m_termination_status << 8) | process.m_termination_signal;
if (process.ppid()) {
auto* parent = Process::from_pid(process.ppid());
@ -1300,6 +1302,7 @@ int Process::reap(Process& process)
dbgprintf("reap: %s(%u) {%s}\n", process.name().characters(), process.pid(), to_string(process.state()));
ASSERT(process.is_dead());
g_processes->remove(&process);
}
delete &process;
return exit_status;
}