1
0
Fork 0
forked from eden-emu/eden

[core] Fix a specific condition where the controller applet would still freeze in MK8D (#311)

This fixes a specific condition where the controller applet would still freeze on the MK8D under certain circumstances.

Reviewed-on: eden-emu/eden#311
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
Co-authored-by: MaranBr <maranbr@outlook.com>
Co-committed-by: MaranBr <maranbr@outlook.com>
This commit is contained in:
MaranBr 2025-08-25 18:23:38 +02:00 committed by crueter
parent 302509d84d
commit a1c5b5c911
Signed by untrusted user: crueter
GPG key ID: 425ACD2D4830EBC6

View file

@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@ -101,12 +104,12 @@ Result ILibraryAppletAccessor::PushInData(SharedPointer<IStorage> storage) {
Result ILibraryAppletAccessor::PopOutData(Out<SharedPointer<IStorage>> out_storage) {
LOG_DEBUG(Service_AM, "called");
if (auto caller_applet = m_applet->caller_applet.lock(); caller_applet) {
Event m_system_event = caller_applet->lifecycle_manager.GetSystemEvent();
m_system_event.Signal();
caller_applet->lifecycle_manager.RequestResumeNotification();
m_system_event.Clear();
}
if (auto caller_applet = m_applet->caller_applet.lock(); caller_applet) {
caller_applet->lifecycle_manager.GetSystemEvent().Signal();
caller_applet->lifecycle_manager.RequestResumeNotification();
caller_applet->lifecycle_manager.GetSystemEvent().Clear();
caller_applet->lifecycle_manager.SignalSystemEventIfNeeded();
}
R_RETURN(m_broker->GetOutData().Pop(out_storage.Get()));
}