1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-07 06:40:15 +00:00
oot/src/libultra_boot_O1/osSetThreadPri.c
2020-03-17 00:31:30 -04:00

26 lines
645 B
C

#include <global.h>
void osSetThreadPri(OSThread* thread, OSPri pri)
{
register u32 s0 = __osDisableInt();
if (thread == NULL)
thread = __osRunningThread;
if (thread->priority != pri)
{
thread->priority = pri;
if (thread != __osRunningThread && thread->state != 1)
{
__osDequeueThread(thread->queue, thread);
__osEnqueueThread(thread->queue, thread);
}
if (__osRunningThread->priority < __osRunQueue->priority)
{
__osRunningThread->state = 2;
__osEnqueueAndYield(&__osRunQueue);
}
}
__osRestoreInt(s0);
}