diff --git a/zion/object/thread.cpp b/zion/object/thread.cpp index 701792c..a1a1d47 100644 --- a/zion/object/thread.cpp +++ b/zion/object/thread.cpp @@ -120,8 +120,10 @@ void Thread::Cleanup() { // 2. Unblock waiting threads. while (blocked_threads_.size() != 0) { auto thread = blocked_threads_.PopFront(); - thread->SetState(Thread::RUNNABLE); - gScheduler->Enqueue(thread); + if (!thread->IsDying()) { + thread->SetState(Thread::RUNNABLE); + gScheduler->Enqueue(thread); + } } // 3. Release Kernel Stack