diff options
| author | 2016-12-08 11:06:19 -0500 | |
|---|---|---|
| committer | 2016-12-08 11:06:19 -0500 | |
| commit | f9bcf895103e5a6d99f5fe755bcac92b7781fd38 (patch) | |
| tree | aebba4794da82175756a09e7d4d1de8d835bf412 /src/core/hle/kernel | |
| parent | Return an error code when connecting to a saturated port. (diff) | |
| download | yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.gz yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.xz yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.zip | |
Use std::move where appropriate.
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/client_port.cpp | 5 | ||||
| -rw-r--r-- | src/core/hle/kernel/client_session.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/kernel/server_port.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/kernel/server_session.cpp | 7 | ||||
| -rw-r--r-- | src/core/hle/kernel/server_session.h | 4 |
5 files changed, 13 insertions, 7 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() {} | |||
| 15 | ClientPort::~ClientPort() {} | 15 | ClientPort::~ClientPort() {} |
| 16 | 16 | ||
| 17 | ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { | 17 | ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { |
| 18 | // Note: Threads do not wait for the server endpoint to call | ||
| 19 | // AcceptSession before returning from this call. | ||
| 20 | |||
| 18 | if (active_sessions >= max_sessions) { | 21 | if (active_sessions >= max_sessions) { |
| 19 | return ResultCode(ErrorDescription::MaxConnectionsReached, | 22 | return ResultCode(ErrorDescription::MaxConnectionsReached, |
| 20 | ErrorModule::OS, ErrorSummary::WouldBlock, | 23 | ErrorModule::OS, ErrorSummary::WouldBlock, |
| @@ -27,7 +30,7 @@ ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { | |||
| 27 | auto client_session = std::get<SharedPtr<ClientSession>>(sessions); | 30 | auto client_session = std::get<SharedPtr<ClientSession>>(sessions); |
| 28 | auto server_session = std::get<SharedPtr<ServerSession>>(sessions); | 31 | auto server_session = std::get<SharedPtr<ServerSession>>(sessions); |
| 29 | 32 | ||
| 30 | server_port->pending_sessions.push_back(server_session); | 33 | server_port->pending_sessions.push_back(std::move(server_session)); |
| 31 | 34 | ||
| 32 | // Wake the threads waiting on the ServerPort | 35 | // Wake the threads waiting on the ServerPort |
| 33 | server_port->WakeupAllWaitingThreads(); | 36 | server_port->WakeupAllWaitingThreads(); |
diff --git a/src/core/hle/kernel/client_session.cpp b/src/core/hle/kernel/client_session.cpp index 6c577610d..30ef10764 100644 --- a/src/core/hle/kernel/client_session.cpp +++ b/src/core/hle/kernel/client_session.cpp | |||
| @@ -16,7 +16,7 @@ ResultVal<SharedPtr<ClientSession>> ClientSession::Create(SharedPtr<ServerSessio | |||
| 16 | SharedPtr<ClientSession> client_session(new ClientSession); | 16 | SharedPtr<ClientSession> client_session(new ClientSession); |
| 17 | 17 | ||
| 18 | client_session->name = std::move(name); | 18 | client_session->name = std::move(name); |
| 19 | client_session->server_session = server_session; | 19 | client_session->server_session = std::move(server_session); |
| 20 | return MakeResult<SharedPtr<ClientSession>>(std::move(client_session)); | 20 | return MakeResult<SharedPtr<ClientSession>>(std::move(client_session)); |
| 21 | } | 21 | } |
| 22 | 22 | ||
diff --git a/src/core/hle/kernel/server_port.cpp b/src/core/hle/kernel/server_port.cpp index f90fe76d5..f7699f023 100644 --- a/src/core/hle/kernel/server_port.cpp +++ b/src/core/hle/kernel/server_port.cpp | |||
| @@ -30,7 +30,7 @@ std::tuple<SharedPtr<ServerPort>, SharedPtr<ClientPort>> ServerPort::CreatePortP | |||
| 30 | SharedPtr<ClientPort> client_port(new ClientPort); | 30 | SharedPtr<ClientPort> client_port(new ClientPort); |
| 31 | 31 | ||
| 32 | server_port->name = name + "_Server"; | 32 | server_port->name = name + "_Server"; |
| 33 | server_port->hle_handler = hle_handler; | 33 | server_port->hle_handler = std::move(hle_handler); |
| 34 | client_port->name = name + "_Client"; | 34 | client_port->name = name + "_Client"; |
| 35 | client_port->server_port = server_port; | 35 | client_port->server_port = server_port; |
| 36 | client_port->max_sessions = max_sessions; | 36 | client_port->max_sessions = max_sessions; |
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index 3782cb493..f8bccadfd 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp | |||
| @@ -18,7 +18,7 @@ ResultVal<SharedPtr<ServerSession>> ServerSession::Create(std::string name, std: | |||
| 18 | 18 | ||
| 19 | server_session->name = std::move(name); | 19 | server_session->name = std::move(name); |
| 20 | server_session->signaled = false; | 20 | server_session->signaled = false; |
| 21 | server_session->hle_handler = hle_handler; | 21 | server_session->hle_handler = std::move(hle_handler); |
| 22 | 22 | ||
| 23 | return MakeResult<SharedPtr<ServerSession>>(std::move(server_session)); | 23 | return MakeResult<SharedPtr<ServerSession>>(std::move(server_session)); |
| 24 | } | 24 | } |
| @@ -46,8 +46,9 @@ ResultCode ServerSession::HandleSyncRequest() { | |||
| 46 | return RESULT_SUCCESS; | 46 | return RESULT_SUCCESS; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> ServerSession::CreateSessionPair(const std::string& name, std::shared_ptr<Service::SessionRequestHandler> hle_handler) { | 49 | ServerSession::SessionPair ServerSession::CreateSessionPair(const std::string& name, |
| 50 | auto server_session = ServerSession::Create(name + "_Server", hle_handler).MoveFrom(); | 50 | std::shared_ptr<Service::SessionRequestHandler> hle_handler) { |
| 51 | auto server_session = ServerSession::Create(name + "_Server", std::move(hle_handler)).MoveFrom(); | ||
| 51 | auto client_session = ClientSession::Create(server_session, name + "_Client").MoveFrom(); | 52 | auto client_session = ClientSession::Create(server_session, name + "_Client").MoveFrom(); |
| 52 | 53 | ||
| 53 | return std::make_tuple(std::move(server_session), std::move(client_session)); | 54 | return std::make_tuple(std::move(server_session), std::move(client_session)); |
diff --git a/src/core/hle/kernel/server_session.h b/src/core/hle/kernel/server_session.h index c73ccee73..7f00db07b 100644 --- a/src/core/hle/kernel/server_session.h +++ b/src/core/hle/kernel/server_session.h | |||
| @@ -40,12 +40,14 @@ public: | |||
| 40 | return HANDLE_TYPE; | 40 | return HANDLE_TYPE; |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | using SessionPair = std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>>; | ||
| 44 | |||
| 43 | /** | 45 | /** |
| 44 | * Creates a pair of ServerSession and an associated ClientSession. | 46 | * Creates a pair of ServerSession and an associated ClientSession. |
| 45 | * @param name Optional name of the ports | 47 | * @param name Optional name of the ports |
| 46 | * @return The created session tuple | 48 | * @return The created session tuple |
| 47 | */ | 49 | */ |
| 48 | static std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> CreateSessionPair(const std::string& name = "Unknown", std::shared_ptr<Service::SessionRequestHandler> hle_handler = nullptr); | 50 | static SessionPair CreateSessionPair(const std::string& name = "Unknown", std::shared_ptr<Service::SessionRequestHandler> hle_handler = nullptr); |
| 49 | 51 | ||
| 50 | /** | 52 | /** |
| 51 | * Handle a sync request from the emulated application. | 53 | * Handle a sync request from the emulated application. |