rosalina: lower thread prios & make task runner take termination into account
This commit is contained in:
parent
b313a4aa2f
commit
e677e0142c
@ -21,7 +21,7 @@ AccessControlInfo:
|
||||
IdealProcessor : 1
|
||||
AffinityMask : 3
|
||||
|
||||
Priority : 20
|
||||
Priority : 25 # 55
|
||||
|
||||
DisableDebug : false
|
||||
EnableForceDebug : true
|
||||
|
@ -48,7 +48,7 @@ static char staticBuf[0x100 + 1] = {0};
|
||||
|
||||
MyThread *errDispCreateThread(void)
|
||||
{
|
||||
if(R_FAILED(MyThread_Create(&errDispThread, errDispThreadMain, errDispThreadStack, 0xD00, 0x18, CORE_SYSTEM)))
|
||||
if(R_FAILED(MyThread_Create(&errDispThread, errDispThreadMain, errDispThreadStack, 0xD00, 55, CORE_SYSTEM)))
|
||||
svcBreak(USERBREAK_PANIC);
|
||||
return &errDispThread;
|
||||
}
|
||||
|
@ -90,13 +90,14 @@ void exit(int rc)
|
||||
// TODO: make pm terminate rosalina
|
||||
__libc_fini_array();
|
||||
|
||||
acExit();
|
||||
// Kernel will take care of it all
|
||||
/*acExit();
|
||||
pmDbgExit();
|
||||
fsExit();
|
||||
svcCloseHandle(*fsRegGetSessionHandle());
|
||||
srvExit();
|
||||
|
||||
__sync_fini();
|
||||
__sync_fini();*/
|
||||
|
||||
svcExitProcess();
|
||||
}
|
||||
|
||||
|
@ -7,10 +7,12 @@ TaskRunner g_taskRunner;
|
||||
static MyThread taskRunnerThread;
|
||||
static u8 ALIGN(8) taskRunnerThreadStack[0x1000];
|
||||
|
||||
extern bool terminationRequest;
|
||||
|
||||
MyThread *taskRunnerCreateThread(void)
|
||||
{
|
||||
TaskRunner_Init();
|
||||
MyThread_Create(&taskRunnerThread, TaskRunner_HandleTasks, taskRunnerThreadStack, THREAD_STACK_SIZE, 0x20, 1);
|
||||
MyThread_Create(&taskRunnerThread, TaskRunner_HandleTasks, taskRunnerThreadStack, THREAD_STACK_SIZE, 58, 1);
|
||||
return &taskRunnerThread;
|
||||
}
|
||||
|
||||
@ -32,7 +34,7 @@ void TaskRunner_RunTask(void (*task)(void *argdata), void *argdata, size_t argsi
|
||||
|
||||
void TaskRunner_HandleTasks(void)
|
||||
{
|
||||
for (;;) {
|
||||
while (!terminationRequest) {
|
||||
LightEvent_Signal(&g_taskRunner.readyEvent);
|
||||
LightEvent_Wait(&g_taskRunner.parametersSetEvent);
|
||||
g_taskRunner.task(g_taskRunner.argStorage);
|
||||
@ -42,4 +44,4 @@ void TaskRunner_HandleTasks(void)
|
||||
void TaskRunner_WaitReady(void)
|
||||
{
|
||||
LightEvent_Wait(&g_taskRunner.readyEvent);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user