Attempt to fix APT hang during startup due to bad event handling

This commit is contained in:
fincs 2014-11-04 21:41:31 +01:00
parent a77e8ae1cd
commit e4aeaba747

View File

@ -339,6 +339,9 @@ Result aptInit(void)
currentAppId = __apt_appid;
svcCreateEvent(&aptStatusEvent, 0);
svcCreateEvent(&aptSleepSync, 0);
if(!(__system_runflags&RUNFLAG_APTWORKAROUND))
{
aptOpenSession();
@ -359,8 +362,6 @@ Result aptInit(void)
} else
aptAppStarted();
svcCreateEvent(&aptStatusEvent, 0);
svcCreateEvent(&aptSleepSync, 0);
return 0;
}
@ -396,20 +397,24 @@ void aptExit()
bool aptMainLoop()
{
for (;;) switch (aptGetStatus())
while(1)
{
switch(aptGetStatus())
{
case APP_RUNNING:
return true;
case APP_EXITING:
return false;
case APP_SUSPENDING:
aptReturnToMenu();
break;
case APP_SLEEPMODE:
default:
//case APP_NOTINITIALIZED:
//case APP_PREPARE_SLEEPMODE:
//case APP_SLEEPMODE:
aptWaitStatusEvent();
break;
case APP_EXITING:
return false;
default:
break;
}
}
}
@ -461,11 +466,11 @@ void aptSetStatus(APP_STATUS status)
prevstatus = aptStatus;
aptStatus = status;
if(prevstatus != APP_NOTINITIALIZED)
{
if(status == APP_RUNNING || status == APP_EXITING)
//if(prevstatus != APP_NOTINITIALIZED)
//{
if(status == APP_RUNNING || status == APP_EXITING || status == APP_SLEEPMODE)
svcSignalEvent(aptStatusEvent);
}
//}
svcReleaseMutex(aptStatusMutex);
}