diff options
author | bunnei <bunneidev@gmail.com> | 2022-01-18 01:51:55 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2022-01-21 02:08:00 +0100 |
commit | 384e24d3e93ccabe39344a5e40fd14780400162c (patch) | |
tree | 755569acc9362b987d5ada93bb8d1cb6c425298e /src | |
parent | hle: kernel: KServerSession: Simplify CompleteSyncRequest EndWait. (diff) | |
download | yuzu-384e24d3e93ccabe39344a5e40fd14780400162c.tar yuzu-384e24d3e93ccabe39344a5e40fd14780400162c.tar.gz yuzu-384e24d3e93ccabe39344a5e40fd14780400162c.tar.bz2 yuzu-384e24d3e93ccabe39344a5e40fd14780400162c.tar.lz yuzu-384e24d3e93ccabe39344a5e40fd14780400162c.tar.xz yuzu-384e24d3e93ccabe39344a5e40fd14780400162c.tar.zst yuzu-384e24d3e93ccabe39344a5e40fd14780400162c.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/kernel/k_server_session.cpp | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/src/core/hle/kernel/k_server_session.cpp b/src/core/hle/kernel/k_server_session.cpp index 2ea995d9a..4d94eb9cf 100644 --- a/src/core/hle/kernel/k_server_session.cpp +++ b/src/core/hle/kernel/k_server_session.cpp @@ -8,7 +8,6 @@ #include "common/assert.h" #include "common/common_types.h" #include "common/logging/log.h" -#include "common/scope_exit.h" #include "core/core_timing.h" #include "core/hle/ipc_helpers.h" #include "core/hle/kernel/hle_ipc.h" @@ -123,20 +122,10 @@ ResultCode KServerSession::QueueSyncRequest(KThread* thread, Core::Memory::Memor context->PopulateFromIncomingCommandBuffer(kernel.CurrentProcess()->GetHandleTable(), cmd_buf); - // In the event that something fails here, stub a result to prevent the game from crashing. - // This is a work-around in the event that somehow we process a service request after the - // session has been closed by the game. This has been observed to happen rarely in Pokemon - // Sword/Shield and is likely a result of us using host threads/scheduling for services. - // TODO(bunnei): Find a better solution here. - auto error_guard = SCOPE_GUARD({ CompleteSyncRequest(*context); }); - // Ensure we have a session request handler if (manager->HasSessionRequestHandler(*context)) { if (auto strong_ptr = manager->GetServiceThread().lock()) { strong_ptr->QueueSyncRequest(*parent, std::move(context)); - - // We succeeded. - error_guard.Cancel(); } else { ASSERT_MSG(false, "strong_ptr is nullptr!"); } |