diff options
| author | 2022-10-16 01:53:56 -0400 | |
|---|---|---|
| committer | 2022-10-31 17:44:06 -0400 | |
| commit | 983f2b70741f17f30fe2321451f10cabecc013d2 (patch) | |
| tree | c1ac3c1033fdeefaabe76590ca204c4c1b2a98cd /src/core/hle/kernel/svc.cpp | |
| parent | Merge pull request #9159 from liamwhite/kbork (diff) | |
| download | yuzu-983f2b70741f17f30fe2321451f10cabecc013d2.tar.gz yuzu-983f2b70741f17f30fe2321451f10cabecc013d2.tar.xz yuzu-983f2b70741f17f30fe2321451f10cabecc013d2.zip | |
kernel: invert session request handling flow
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 4aca5b27d..8d2c7d6b7 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | #include "core/hle/kernel/k_memory_block.h" | 24 | #include "core/hle/kernel/k_memory_block.h" |
| 25 | #include "core/hle/kernel/k_memory_layout.h" | 25 | #include "core/hle/kernel/k_memory_layout.h" |
| 26 | #include "core/hle/kernel/k_page_table.h" | 26 | #include "core/hle/kernel/k_page_table.h" |
| 27 | #include "core/hle/kernel/k_port.h" | ||
| 27 | #include "core/hle/kernel/k_process.h" | 28 | #include "core/hle/kernel/k_process.h" |
| 28 | #include "core/hle/kernel/k_readable_event.h" | 29 | #include "core/hle/kernel/k_readable_event.h" |
| 29 | #include "core/hle/kernel/k_resource_limit.h" | 30 | #include "core/hle/kernel/k_resource_limit.h" |
| @@ -382,10 +383,11 @@ static Result ConnectToNamedPort(Core::System& system, Handle* out, VAddr port_n | |||
| 382 | 383 | ||
| 383 | // Create a session. | 384 | // Create a session. |
| 384 | KClientSession* session{}; | 385 | KClientSession* session{}; |
| 385 | R_TRY(port->CreateSession(std::addressof(session), | 386 | R_TRY(port->CreateSession(std::addressof(session))); |
| 386 | std::make_shared<SessionRequestManager>(kernel))); | ||
| 387 | port->Close(); | 387 | port->Close(); |
| 388 | 388 | ||
| 389 | kernel.RegisterNamedServiceHandler(port_name, &port->GetParent()->GetServerPort()); | ||
| 390 | |||
| 389 | // Register the session in the table, close the extra reference. | 391 | // Register the session in the table, close the extra reference. |
| 390 | handle_table.Register(*out, session); | 392 | handle_table.Register(*out, session); |
| 391 | session->Close(); | 393 | session->Close(); |