31 lines
838 B
C
Executable file
31 lines
838 B
C
Executable file
/* Verifies that lowering a thread's priority so that it is no
|
|
longer the highest-priority thread in the system causes it to
|
|
yield immediately. */
|
|
|
|
#include <stdio.h>
|
|
#include "tests/threads/tests.h"
|
|
#include "threads/init.h"
|
|
#include "threads/thread.h"
|
|
|
|
static thread_func changing_thread;
|
|
|
|
void
|
|
test_priority_change (void)
|
|
{
|
|
/* This test does not work with the MLFQS. */
|
|
ASSERT (!thread_mlfqs);
|
|
|
|
msg ("Creating a high-priority thread 2.");
|
|
thread_create ("thread 2", PRI_DEFAULT + 1, changing_thread, NULL);
|
|
msg ("Thread 2 should have just lowered its priority.");
|
|
thread_set_priority (PRI_DEFAULT - 2);
|
|
msg ("Thread 2 should have just exited.");
|
|
}
|
|
|
|
static void
|
|
changing_thread (void *aux UNUSED)
|
|
{
|
|
msg ("Thread 2 now lowering priority.");
|
|
thread_set_priority (PRI_DEFAULT - 1);
|
|
msg ("Thread 2 exiting.");
|
|
}
|