/* Verifies that lowering a threads priority so that it is no
longer the highest-priority thread in the system causes it to
yield immediately. */
#include
#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.);
}
Reviews
There are no reviews yet.