Kernel: remove object's waiting thread if it is dead
This commit is contained in:
parent
cda7210fad
commit
4c9b80cee3
|
@ -35,7 +35,8 @@ void WaitObject::RemoveWaitingThread(Thread* thread) {
|
||||||
SharedPtr<Thread> WaitObject::GetHighestPriorityReadyThread() {
|
SharedPtr<Thread> WaitObject::GetHighestPriorityReadyThread() {
|
||||||
// Remove the threads that are ready or already running from our waitlist
|
// Remove the threads that are ready or already running from our waitlist
|
||||||
boost::range::remove_erase_if(waiting_threads, [](const SharedPtr<Thread>& thread) {
|
boost::range::remove_erase_if(waiting_threads, [](const SharedPtr<Thread>& thread) {
|
||||||
return thread->status == THREADSTATUS_RUNNING || thread->status == THREADSTATUS_READY;
|
return thread->status == THREADSTATUS_RUNNING || thread->status == THREADSTATUS_READY ||
|
||||||
|
thread->status == THREADSTATUS_DEAD;
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO(Subv): This call should be performed inside the loop below to check if an object can be
|
// TODO(Subv): This call should be performed inside the loop below to check if an object can be
|
||||||
|
|
Reference in New Issue