diff options
| author | bunnei <bunneidev@gmail.com> | 2021-06-04 19:26:48 -0700 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2021-06-04 19:26:48 -0700 |
| commit | 27ce97fd42d758350c5100c4bbcb78de0a6d48b5 (patch) | |
| tree | 7ebe2d29e0bbac3cd33dd21f8f154632aedfdea9 /src/core/hle/service/sm/sm.cpp | |
| parent | c8b3d928368b12dba3bf0f4221f7013e464540dd (diff) | |
hle: kernel: Refactor to allocate a ServiceThread per service handler.
- Previously, we would allocate a thread per session, which adds new threads on CloneCurrentObject.
- This results in race conditions with N sessions queuing requests to the same service interface.
- Fixes Pokken Tournament DX crashes/softlocks, which were regressed by #6347.
Diffstat (limited to 'src/core/hle/service/sm/sm.cpp')
| -rw-r--r-- | src/core/hle/service/sm/sm.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp index d8b20a3f2..bffa9ffcb 100644 --- a/src/core/hle/service/sm/sm.cpp +++ b/src/core/hle/service/sm/sm.cpp @@ -46,7 +46,7 @@ Kernel::KClientPort& ServiceManager::InterfaceFactory(ServiceManager& self, Core self.sm_interface = sm; self.controller_interface = std::make_unique<Controller>(system); - return sm->CreatePort(system.Kernel()); + return sm->CreatePort(); } ResultVal<Kernel::KServerPort*> ServiceManager::RegisterService(std::string name, |
