Files
Starship/src/libultra/os/stopthread.c
T
petrie911 4a572e7e30 Remove assets.h from global.h, some other header adjustments (#174)
* splits

* torch

* torch again

* headers

* merges

* format
2024-03-21 17:19:38 -03:00

20 lines
525 B
C

#include "osint.h"
void osStopThread(OSThread* t) {
register u32 saveMask = __osDisableInt();
register u16 state = (t == NULL) ? OS_STATE_RUNNING : t->state;
switch (state) {
case OS_STATE_RUNNING:
__osRunningThread->state = 1;
__osEnqueueAndYield(NULL);
break;
case OS_STATE_RUNNABLE:
case OS_STATE_WAITING:
t->state = OS_STATE_STOPPED;
__osDequeueThread(t->queue, t);
break;
}
__osRestoreInt(saveMask);
}