summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/hle_ipc.h5
-rw-r--r--src/core/hle/kernel/k_server_session.cpp9
2 files changed, 2 insertions, 12 deletions
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 55e6fb9f7..754b41ff6 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -341,10 +341,6 @@ public:
341 return *thread; 341 return *thread;
342 } 342 }
343 343
344 bool IsThreadWaiting() const {
345 return is_thread_waiting;
346 }
347
348private: 344private:
349 friend class IPC::ResponseBuilder; 345 friend class IPC::ResponseBuilder;
350 346
@@ -379,7 +375,6 @@ private:
379 u32 domain_offset{}; 375 u32 domain_offset{};
380 376
381 std::shared_ptr<SessionRequestManager> manager; 377 std::shared_ptr<SessionRequestManager> manager;
382 bool is_thread_waiting{};
383 378
384 KernelCore& kernel; 379 KernelCore& kernel;
385 Core::Memory::Memory& memory; 380 Core::Memory::Memory& memory;
diff --git a/src/core/hle/kernel/k_server_session.cpp b/src/core/hle/kernel/k_server_session.cpp
index d4e4a6b06..2ea995d9a 100644
--- a/src/core/hle/kernel/k_server_session.cpp
+++ b/src/core/hle/kernel/k_server_session.cpp
@@ -171,13 +171,8 @@ ResultCode KServerSession::CompleteSyncRequest(HLERequestContext& context) {
171 convert_to_domain = false; 171 convert_to_domain = false;
172 } 172 }
173 173
174 // Some service requests require the thread to block 174 // The calling thread is waiting for this request to complete, so wake it up.
175 { 175 context.GetThread().EndWait(result);
176 KScopedSchedulerLock lock(kernel);
177 if (!context.IsThreadWaiting()) {
178 context.GetThread().EndWait(result);
179 }
180 }
181 176
182 return result; 177 return result;
183} 178}