summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/kernel/server_session.cpp2
-rw-r--r--src/core/hle/kernel/service_thread.cpp10
-rw-r--r--src/core/hle/kernel/service_thread.h2
3 files changed, 7 insertions, 7 deletions
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp
index 079c3911a..ed42452ff 100644
--- a/src/core/hle/kernel/server_session.cpp
+++ b/src/core/hle/kernel/server_session.cpp
@@ -34,7 +34,7 @@ ResultVal<std::shared_ptr<ServerSession>> ServerSession::Create(KernelCore& kern
34 34
35 session->name = std::move(name); 35 session->name = std::move(name);
36 session->parent = std::move(parent); 36 session->parent = std::move(parent);
37 session->service_thread = std::make_unique<ServiceThread>(kernel); 37 session->service_thread = std::make_unique<ServiceThread>(kernel, 1);
38 38
39 return MakeResult(std::move(session)); 39 return MakeResult(std::move(session));
40} 40}
diff --git a/src/core/hle/kernel/service_thread.cpp b/src/core/hle/kernel/service_thread.cpp
index 59a6045df..4ceb7e56a 100644
--- a/src/core/hle/kernel/service_thread.cpp
+++ b/src/core/hle/kernel/service_thread.cpp
@@ -22,7 +22,7 @@ namespace Kernel {
22 22
23class ServiceThread::Impl final { 23class ServiceThread::Impl final {
24public: 24public:
25 explicit Impl(KernelCore& kernel); 25 explicit Impl(KernelCore& kernel, std::size_t num_threads);
26 ~Impl(); 26 ~Impl();
27 27
28 void QueueSyncRequest(ServerSession& session, std::shared_ptr<HLERequestContext>&& context); 28 void QueueSyncRequest(ServerSession& session, std::shared_ptr<HLERequestContext>&& context);
@@ -35,9 +35,8 @@ private:
35 bool stop{}; 35 bool stop{};
36}; 36};
37 37
38ServiceThread::Impl::Impl(KernelCore& kernel) { 38ServiceThread::Impl::Impl(KernelCore& kernel, std::size_t num_threads) {
39 constexpr std::size_t SizeOfPool{1}; 39 for (std::size_t i = 0; i < num_threads; ++i)
40 for (std::size_t i = 0; i < SizeOfPool; ++i)
41 threads.emplace_back([&] { 40 threads.emplace_back([&] {
42 // Wait for first request before trying to acquire a render context 41 // Wait for first request before trying to acquire a render context
43 { 42 {
@@ -88,7 +87,8 @@ ServiceThread::Impl::~Impl() {
88 } 87 }
89} 88}
90 89
91ServiceThread::ServiceThread(KernelCore& kernel) : impl{std::make_unique<Impl>(kernel)} {} 90ServiceThread::ServiceThread(KernelCore& kernel, std::size_t num_threads)
91 : impl{std::make_unique<Impl>(kernel, num_threads)} {}
92 92
93ServiceThread::~ServiceThread() = default; 93ServiceThread::~ServiceThread() = default;
94 94
diff --git a/src/core/hle/kernel/service_thread.h b/src/core/hle/kernel/service_thread.h
index d252490bb..91ad7ae85 100644
--- a/src/core/hle/kernel/service_thread.h
+++ b/src/core/hle/kernel/service_thread.h
@@ -14,7 +14,7 @@ class ServerSession;
14 14
15class ServiceThread final { 15class ServiceThread final {
16public: 16public:
17 explicit ServiceThread(KernelCore& kernel); 17 explicit ServiceThread(KernelCore& kernel, std::size_t num_threads);
18 ~ServiceThread(); 18 ~ServiceThread();
19 19
20 void QueueSyncRequest(ServerSession& session, std::shared_ptr<HLERequestContext>&& context); 20 void QueueSyncRequest(ServerSession& session, std::shared_ptr<HLERequestContext>&& context);