Merge 'task1/priority-donation' into 'master' #14

Merged
sb3923 merged 66 commits from task1/priority-donation into master 2024-10-23 16:15:45 +00:00
2 changed files with 55 additions and 2 deletions
Showing only changes of commit 5c09ff0149 - Show all commits

View File

@@ -388,6 +388,19 @@ thread_set_priority (int new_priority)
return; return;
thread_current ()->priority = new_priority; thread_current ()->priority = new_priority;
if (new_priority < old_priority && !list_empty (&ready_list)) {
/* If the new priority is lower than the old priority, check if the current
thread no longer has the highest priority. If it doesn't, yield the CPU.
*/
struct thread *next_thread =
list_entry (list_front (&ready_list), struct thread, elem);
if (next_thread->priority > new_priority) {
thread_yield();
}
}
} }
/* Returns the current thread's priority. */ /* Returns the current thread's priority. */