<gmh@leland.stanford.edu>, Yu Ping Hu <yph@cs.stanford.edu>.
Modified by arens. */
-#ifdef MLFQS
-#error This test not applicable with MLFQS enabled.
-#endif
-
#include "threads/test.h"
#include <stdio.h>
#include "threads/synch.h"
void
test (void)
{
+ /* This test does not work with the MLFQS. */
+ ASSERT (!enable_mlfqs);
+
/* Make sure our priority is the default. */
ASSERT (thread_get_priority () == PRI_DEFAULT);
locks.b = &b;
thread_create ("medium", PRI_DEFAULT + 1, medium_thread_func, &locks);
thread_yield ();
- printf (" 1. Low thread should have priority %d. Actual priority: %d.\n",
+ printf ("Low thread should have priority %d. Actual priority: %d.\n",
PRI_DEFAULT + 1, thread_get_priority ());
thread_create ("high", PRI_DEFAULT + 2, high_thread_func, &b);
thread_yield ();
- printf (" 2. Low thread should have priority %d. Actual priority: %d.\n",
+ printf ("Low thread should have priority %d. Actual priority: %d.\n",
PRI_DEFAULT + 2, thread_get_priority ());
lock_release (&a);
thread_yield ();
- printf (" 9. Medium thread should just have finished.\n");
- printf ("10. Low thread should have priority %d. Actual priority: %d.\n",
+ printf ("Medium thread should just have finished.\n");
+ printf ("Low thread should have priority %d. Actual priority: %d.\n",
PRI_DEFAULT, thread_get_priority ());
printf ("Nested priority priority donation test finished.\n");
}
lock_acquire (locks->b);
lock_acquire (locks->a);
- printf (" 3. Medium thread should have priority %d. Actual priority: %d\n",
+ printf ("Medium thread should have priority %d. Actual priority: %d.\n",
PRI_DEFAULT + 2, thread_get_priority ());
- printf (" 4. Medium thread got the lock.\n");
+ printf ("Medium thread got the lock.\n");
lock_release (locks->a);
thread_yield ();
lock_release (locks->b);
thread_yield ();
- printf (" 7. High thread should have just finished.\n");
- printf (" 8. Middle thread finished.\n");
+ printf ("High thread should have just finished.\n");
+ printf ("Middle thread finished.\n");
}
static void
struct lock *lock = lock_;
lock_acquire (lock);
- printf (" 5. High thread got the lock.\n");
+ printf ("High thread got the lock.\n");
lock_release (lock);
- printf (" 6. High thread finished.\n");
+ printf ("High thread finished.\n");
}