diff options
| author | bunnei <bunneidev@gmail.com> | 2020-12-09 21:27:05 -0800 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2020-12-28 16:33:47 -0800 |
| commit | 28281ae2500a4af9c36c26de5ba07b80d440b335 (patch) | |
| tree | 8113b0af071dbe7004f5f072862d47f557a9eb27 /src/core/hle/kernel/server_session.h | |
| parent | 7dbdda908c8eca9a47475112ef2f32059e6e2de2 (diff) | |
core: hle: server_session: Use separate threads for each service connection.
Diffstat (limited to 'src/core/hle/kernel/server_session.h')
| -rw-r--r-- | src/core/hle/kernel/server_session.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/core/hle/kernel/server_session.h b/src/core/hle/kernel/server_session.h index d23e9ec68..8466b03e6 100644 --- a/src/core/hle/kernel/server_session.h +++ b/src/core/hle/kernel/server_session.h @@ -10,6 +10,7 @@ #include <vector> #include "common/threadsafe_queue.h" +#include "core/hle/kernel/service_thread.h" #include "core/hle/kernel/synchronization_object.h" #include "core/hle/result.h" @@ -43,6 +44,8 @@ class Thread; * TLS buffer and control is transferred back to it. */ class ServerSession final : public SynchronizationObject { + friend class ServiceThread; + public: explicit ServerSession(KernelCore& kernel); ~ServerSession() override; @@ -132,7 +135,7 @@ private: ResultCode QueueSyncRequest(std::shared_ptr<Thread> thread, Core::Memory::Memory& memory); /// Completes a sync request from the emulated application. - ResultCode CompleteSyncRequest(); + ResultCode CompleteSyncRequest(HLERequestContext& context); /// Handles a SyncRequest to a domain, forwarding the request to the proper object or closing an /// object handle. @@ -163,11 +166,8 @@ private: /// The name of this session (optional) std::string name; - /// Core timing event used to schedule the service request at some point in the future - std::shared_ptr<Core::Timing::EventType> request_event; - - /// Queue of scheduled service requests - Common::MPSCQueue<std::shared_ptr<Kernel::HLERequestContext>> request_queue; + /// Thread to dispatch service requests + std::unique_ptr<ServiceThread> service_thread; }; } // namespace Kernel |
