Update set priority to eliminate race condition when accessing ready list

This commit is contained in:
sBubshait
2024-10-17 06:35:39 +01:00
parent 5c09ff0149
commit 949455aae5

View File

@@ -389,6 +389,8 @@ thread_set_priority (int new_priority)
thread_current ()->priority = new_priority;
enum intr_level old_level = intr_disable ();
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.
@@ -401,6 +403,8 @@ thread_set_priority (int new_priority)
thread_yield();
}
}
intr_set_level (old_level);
}
/* Returns the current thread's priority. */