|
@@ -178,8 +178,11 @@ void Thread::die_if_needed()
|
|
if (!m_should_die)
|
|
if (!m_should_die)
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
+ m_process.big_lock().unlock_if_locked();
|
|
|
|
+
|
|
InterruptDisabler disabler;
|
|
InterruptDisabler disabler;
|
|
set_state(Thread::State::Dying);
|
|
set_state(Thread::State::Dying);
|
|
|
|
+
|
|
if (!Scheduler::is_active())
|
|
if (!Scheduler::is_active())
|
|
Scheduler::pick_next_and_switch_now();
|
|
Scheduler::pick_next_and_switch_now();
|
|
}
|
|
}
|