From 62c8818c05d1d7ee79c35c39be73b0285b543ea1 Mon Sep 17 00:00:00 2001 From: sBubshait Date: Wed, 16 Oct 2024 08:18:51 +0100 Subject: [PATCH] Update thread_yield to add thread back in sorted order of priority --- src/threads/thread.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/threads/thread.c b/src/threads/thread.c index 0a66d65..e34d23e 100644 --- a/src/threads/thread.c +++ b/src/threads/thread.c @@ -336,8 +336,11 @@ thread_yield (void) ASSERT (!intr_context ()); old_level = intr_disable (); + + /* Insert the thread back into the ready list in priority order. */ if (cur != idle_thread) - list_push_back (&ready_list, &cur->elem); + list_insert_ordered(&ready_list, &cur->elem, priority_more, NULL); + cur->status = THREAD_READY; schedule (); intr_set_level (old_level);