v2.9.4: Absturz beim Beenden behoben (Hintergrund-Threads, die noch auf den Server warten)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
52e0270c80
commit
9ffe07ff48
+14
-3
@@ -681,11 +681,22 @@ int main(int argc, char **argv)
|
||||
C3D_FrameEnd(0);
|
||||
}
|
||||
|
||||
// Hintergrund-Threads, die noch auf den Server warten, dürfen ihren Speicher nicht verlieren: Sonst
|
||||
// schreiben sie nach dem Freigeben hinein und Luma zeigt einen Absturz (z. B. beim Neustart nach "Nintendo").
|
||||
ftpctl_stop(NULL, 0);
|
||||
shopctl_exit();
|
||||
if (maintenanceThread) { threadJoin(maintenanceThread, U64_MAX); threadFree(maintenanceThread); }
|
||||
admin_finish();
|
||||
update_finish();
|
||||
bool clean = true;
|
||||
if (maintenanceThread) {
|
||||
if (R_SUCCEEDED(threadJoin(maintenanceThread, 20ULL * 1000 * 1000 * 1000))) threadFree(maintenanceThread);
|
||||
else clean = false;
|
||||
}
|
||||
clean = admin_finish() && clean;
|
||||
clean = update_finish() && clean;
|
||||
if (!clean) {
|
||||
// Hart beenden, ohne Speicher freizugeben (der Kernel räumt alles auf)
|
||||
aptExit();
|
||||
svcExitProcess();
|
||||
}
|
||||
frdswitch_exit();
|
||||
nnid_exit();
|
||||
httpcExit();
|
||||
|
||||
Reference in New Issue
Block a user