pm: fix process exit on < 5.0.0 (closes #748) (thanks @misson20000)

This commit is contained in:
Michael Scire 2019-12-13 13:35:33 -08:00
parent f9a199557c
commit 0a18c63f24

View file

@ -412,12 +412,12 @@ namespace ams::pm::impl {
} }
break; break;
case ProcessState_Exited: case ProcessState_Exited:
if (hos::GetVersion() < hos::Version_500 && process_info->ShouldSignalOnExit()) {
g_process_event.Signal();
} else {
/* Free process resources, unlink from waitable manager. */ /* Free process resources, unlink from waitable manager. */
process_info->Cleanup(); process_info->Cleanup();
if (hos::GetVersion() < hos::Version_500 && process_info->ShouldSignalOnExit()) {
g_process_event.Signal();
} else {
/* Handle the case where we need to keep the process alive some time longer. */ /* Handle the case where we need to keep the process alive some time longer. */
if (hos::GetVersion() >= hos::Version_500 && process_info->ShouldSignalOnExit()) { if (hos::GetVersion() >= hos::Version_500 && process_info->ShouldSignalOnExit()) {
/* Remove from the living list. */ /* Remove from the living list. */
@ -436,6 +436,7 @@ namespace ams::pm::impl {
CleanupProcessInfo(list, process_info); CleanupProcessInfo(list, process_info);
} }
} }
break;
case ProcessState_DebugSuspended: case ProcessState_DebugSuspended:
if (process_info->ShouldSignalOnDebugEvent()) { if (process_info->ShouldSignalOnDebugEvent()) {
process_info->SetSuspended(); process_info->SetSuspended();