diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-06-23 08:57:05 +0200 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2017-06-23 20:26:37 +0200 |
commit | e192d417ecc24648106cf3d088bd715525f83e5e (patch) | |
tree | d4f4be2c9ed527b9f4df3a74e686a2722e5e05be /src/core/hle/kernel/server_port.cpp | |
parent | Kernel: Fix SVC wrapper for CreatePort (diff) | |
download | yuzu-e192d417ecc24648106cf3d088bd715525f83e5e.tar yuzu-e192d417ecc24648106cf3d088bd715525f83e5e.tar.gz yuzu-e192d417ecc24648106cf3d088bd715525f83e5e.tar.bz2 yuzu-e192d417ecc24648106cf3d088bd715525f83e5e.tar.lz yuzu-e192d417ecc24648106cf3d088bd715525f83e5e.tar.xz yuzu-e192d417ecc24648106cf3d088bd715525f83e5e.tar.zst yuzu-e192d417ecc24648106cf3d088bd715525f83e5e.zip |
Diffstat (limited to 'src/core/hle/kernel/server_port.cpp')
-rw-r--r-- | src/core/hle/kernel/server_port.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/hle/kernel/server_port.cpp b/src/core/hle/kernel/server_port.cpp index 4d20c39a1..49a9cdfa3 100644 --- a/src/core/hle/kernel/server_port.cpp +++ b/src/core/hle/kernel/server_port.cpp @@ -5,8 +5,10 @@ #include <tuple> #include "common/assert.h" #include "core/hle/kernel/client_port.h" +#include "core/hle/kernel/errors.h" #include "core/hle/kernel/kernel.h" #include "core/hle/kernel/server_port.h" +#include "core/hle/kernel/server_session.h" #include "core/hle/kernel/thread.h" namespace Kernel { @@ -14,6 +16,16 @@ namespace Kernel { ServerPort::ServerPort() {} ServerPort::~ServerPort() {} +ResultVal<SharedPtr<ServerSession>> ServerPort::Accept() { + if (pending_sessions.empty()) { + return ERR_NO_PENDING_SESSIONS; + } + + auto session = std::move(pending_sessions.back()); + pending_sessions.pop_back(); + return MakeResult(std::move(session)); +} + bool ServerPort::ShouldWait(Thread* thread) const { // If there are no pending sessions, we wait until a new one is added. return pending_sessions.size() == 0; |