Fix two bugs in the base Pintos code:
[pintos-anon] / src / tests / threads / priority-sema.c
index 743b05aecd4907140054f83f60dbd520ca467e16..2834a880be25c92aa9989c6e3e828c13fb0fc107 100644 (file)
@@ -1,3 +1,6 @@
+/* Tests that the highest-priority thread waiting on a semaphore
+   is the first to wake up. */
+
 #include <stdio.h>
 #include "tests/threads/tests.h"
 #include "threads/init.h"
@@ -15,13 +18,13 @@ test_priority_sema (void)
   int i;
   
   /* This test does not work with the MLFQS. */
-  ASSERT (!enable_mlfqs);
+  ASSERT (!thread_mlfqs);
 
   sema_init (&sema, 0);
-  thread_set_priority (PRI_MAX);
+  thread_set_priority (PRI_MIN);
   for (i = 0; i < 10; i++) 
     {
-      int priority = (i + 3) % 10 + PRI_DEFAULT + 1;
+      int priority = PRI_DEFAULT - (i + 3) % 10 - 1;
       char name[16];
       snprintf (name, sizeof name, "priority %d", priority);
       thread_create (name, priority, priority_sema_thread, NULL);