From e7ce4514ec65c4a76fbd740383efc4e9e9f29630 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 30 Jun 2019 11:40:23 +0200 Subject: [PATCH] Kernel: Disable interrupts in Thread::set_state(). We don't want to get interrupted while we're manipulating the thread lists. --- Kernel/Thread.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Kernel/Thread.cpp b/Kernel/Thread.cpp index 7142a07a42..a0d26b378d 100644 --- a/Kernel/Thread.cpp +++ b/Kernel/Thread.cpp @@ -568,6 +568,7 @@ bool Thread::is_thread(void* ptr) void Thread::set_thread_list(InlineLinkedList* thread_list) { + ASSERT_INTERRUPTS_DISABLED(); ASSERT(pid() != 0); if (m_thread_list == thread_list) return; @@ -580,6 +581,7 @@ void Thread::set_thread_list(InlineLinkedList* thread_list) void Thread::set_state(State new_state) { + InterruptDisabler disabler; m_state = new_state; if (m_process.pid() != 0) set_thread_list(thread_list_for_state(new_state));