mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-02 06:37:52 +00:00
Kernel: Unlock the Process when exit()ing
If there are more threads in a process when exit()ing, we need to give them a chance to unwind any kernel stacks. This means we have to unlock the process lock before giving control to the scheduler. Fixes #891 (together with all of the other "no more main thread" work.)
This commit is contained in:
@@ -178,8 +178,11 @@ void Thread::die_if_needed()
|
||||
if (!m_should_die)
|
||||
return;
|
||||
|
||||
m_process.big_lock().unlock_if_locked();
|
||||
|
||||
InterruptDisabler disabler;
|
||||
set_state(Thread::State::Dying);
|
||||
|
||||
if (!Scheduler::is_active())
|
||||
Scheduler::pick_next_and_switch_now();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user