diff options
author | Subv <subv2112@gmail.com> | 2016-12-08 17:06:19 +0100 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2016-12-08 17:06:19 +0100 |
commit | f9bcf895103e5a6d99f5fe755bcac92b7781fd38 (patch) | |
tree | aebba4794da82175756a09e7d4d1de8d835bf412 /src/core/hle/kernel/client_port.cpp | |
parent | Return an error code when connecting to a saturated port. (diff) | |
download | yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.gz yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.bz2 yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.lz yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.xz yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.zst yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/client_port.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hle/kernel/client_port.cpp b/src/core/hle/kernel/client_port.cpp index 120ce554d..20179e546 100644 --- a/src/core/hle/kernel/client_port.cpp +++ b/src/core/hle/kernel/client_port.cpp @@ -15,6 +15,9 @@ ClientPort::ClientPort() {} ClientPort::~ClientPort() {} ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { + // Note: Threads do not wait for the server endpoint to call + // AcceptSession before returning from this call. + if (active_sessions >= max_sessions) { return ResultCode(ErrorDescription::MaxConnectionsReached, ErrorModule::OS, ErrorSummary::WouldBlock, @@ -27,7 +30,7 @@ ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { auto client_session = std::get<SharedPtr<ClientSession>>(sessions); auto server_session = std::get<SharedPtr<ServerSession>>(sessions); - server_port->pending_sessions.push_back(server_session); + server_port->pending_sessions.push_back(std::move(server_session)); // Wake the threads waiting on the ServerPort server_port->WakeupAllWaitingThreads(); |