1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 00:47: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

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