Fix Bug in Implementation of recalculate priority setting base priority, w/ T

This commit is contained in:
sBubshait
2024-10-20 20:54:48 +01:00
parent afcb12cef0
commit 44de31c0ff

View File

@@ -386,10 +386,7 @@ thread_set_priority (int new_base_priority)
return; return;
t->base_priority = new_base_priority; t->base_priority = new_base_priority;
t->priority = new_base_priority; thread_recalculate_priority ();
if (new_base_priority < old_priority)
thread_recalculate_priority ();
thread_yield (); thread_yield ();
} }
@@ -406,6 +403,7 @@ void
thread_recalculate_priority (void) thread_recalculate_priority (void)
{ {
struct thread *t = thread_current (); struct thread *t = thread_current ();
t->priority = t->base_priority;
if (!list_empty (&t->donors_list)) { if (!list_empty (&t->donors_list)) {
int max_donated_priority = int max_donated_priority =