Browse Source
hle: kernel: Refactor to allocate a ServiceThread per service handler.
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.pull/15/merge
13 changed files with 75 additions and 67 deletions
-
11src/core/hle/kernel/hle_ipc.cpp
-
22src/core/hle/kernel/hle_ipc.h
-
5src/core/hle/kernel/k_client_port.cpp
-
4src/core/hle/kernel/k_client_port.h
-
21src/core/hle/kernel/k_server_session.cpp
-
17src/core/hle/kernel/k_server_session.h
-
5src/core/hle/kernel/k_session.cpp
-
5src/core/hle/kernel/k_session.h
-
2src/core/hle/service/ns/pl_u.cpp
-
6src/core/hle/service/service.cpp
-
5src/core/hle/service/service.h
-
37src/core/hle/service/sm/controller.cpp
-
2src/core/hle/service/sm/sm.cpp
Write
Preview
Loading…
Cancel
Save
Reference in new issue