|
|
|
@ -306,12 +306,14 @@ void Thread::UpdatePriority() { |
|
|
|
// Find the highest priority among all the threads that are waiting for this thread's lock
|
|
|
|
u32 new_priority = nominal_priority; |
|
|
|
if (!wait_mutex_threads.empty()) { |
|
|
|
if (wait_mutex_threads.front()->current_priority < new_priority) |
|
|
|
if (wait_mutex_threads.front()->current_priority < new_priority) { |
|
|
|
new_priority = wait_mutex_threads.front()->current_priority; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (new_priority == current_priority) |
|
|
|
if (new_priority == current_priority) { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
scheduler->SetThreadPriority(this, new_priority); |
|
|
|
current_priority = new_priority; |
|
|
|
|