X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ftests%2Fthreads%2Falarm-priority.c;h=2288ff6d6950034db2eedadf3b44c04d60377103;hb=03f3426d4da28916900a7b811e72b862c5411d0d;hp=379f49213b136f1f7d53f87ddf176a17ea3ac37e;hpb=615bf3b3d2a8573ed6fb9ddc0055745e163ac999;p=pintos-anon diff --git a/src/tests/threads/alarm-priority.c b/src/tests/threads/alarm-priority.c index 379f492..2288ff6 100644 --- a/src/tests/threads/alarm-priority.c +++ b/src/tests/threads/alarm-priority.c @@ -1,3 +1,6 @@ +/* Checks that when the alarm clock wakes up threads, the + higher-priority threads run first. */ + #include #include "tests/threads/tests.h" #include "threads/init.h" @@ -16,20 +19,20 @@ test_alarm_priority (void) int i; /* This test does not work with the MLFQS. */ - ASSERT (!enable_mlfqs); + ASSERT (!thread_mlfqs); wake_time = timer_ticks () + 5 * TIMER_FREQ; sema_init (&wait_sema, 0); for (i = 0; i < 10; i++) { - int priority = (i + 5) % 10 + PRI_DEFAULT + 1; + int priority = PRI_DEFAULT - (i + 5) % 10 - 1; char name[16]; snprintf (name, sizeof name, "priority %d", priority); thread_create (name, priority, alarm_priority_thread, NULL); } - thread_set_priority (PRI_MAX); + thread_set_priority (PRI_MIN); for (i = 0; i < 10; i++) sema_down (&wait_sema); @@ -39,7 +42,7 @@ static void alarm_priority_thread (void *aux UNUSED) { /* Busy-wait until the current time changes. */ - int64_t start_time; + int64_t start_time = timer_ticks (); while (timer_elapsed (start_time) == 0) continue;