summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/hle_ipc.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-12-12 01:45:27 +0100
committerbunnei <bunneidev@gmail.com>2020-12-29 01:33:48 +0100
commit5d4715cc6af424e8529de5ac1a11d1cca3b3f7cf (patch)
tree9e803d2c7269786559c6fedb16a995228d285ea8 /src/core/hle/kernel/hle_ipc.cpp
parenthle: service: bsd: Update to work with service threads, removing SleepClientThread. (diff)
downloadyuzu-5d4715cc6af424e8529de5ac1a11d1cca3b3f7cf.tar
yuzu-5d4715cc6af424e8529de5ac1a11d1cca3b3f7cf.tar.gz
yuzu-5d4715cc6af424e8529de5ac1a11d1cca3b3f7cf.tar.bz2
yuzu-5d4715cc6af424e8529de5ac1a11d1cca3b3f7cf.tar.lz
yuzu-5d4715cc6af424e8529de5ac1a11d1cca3b3f7cf.tar.xz
yuzu-5d4715cc6af424e8529de5ac1a11d1cca3b3f7cf.tar.zst
yuzu-5d4715cc6af424e8529de5ac1a11d1cca3b3f7cf.zip
Diffstat (limited to 'src/core/hle/kernel/hle_ipc.cpp')
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp37
1 files changed, 0 insertions, 37 deletions
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index e75e80ad0..83decf6cf 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -46,43 +46,6 @@ void SessionRequestHandler::ClientDisconnected(
boost::range::remove_erase(connected_sessions, server_session);
}
-std::shared_ptr<WritableEvent> HLERequestContext::SleepClientThread(
- const std::string& reason, u64 timeout, WakeupCallback&& callback,
- std::shared_ptr<WritableEvent> writable_event) {
- // Put the client thread to sleep until the wait event is signaled or the timeout expires.
-
- if (!writable_event) {
- // Create event if not provided
- const auto pair = WritableEvent::CreateEventPair(kernel, "HLE Pause Event: " + reason);
- writable_event = pair.writable;
- }
-
- Handle event_handle = InvalidHandle;
- {
- KScopedSchedulerLockAndSleep lock(kernel, event_handle, thread.get(), timeout);
- thread->SetHLECallback(
- [context = *this, callback](std::shared_ptr<Thread> thread) mutable -> bool {
- ThreadWakeupReason reason = thread->GetSignalingResult() == RESULT_TIMEOUT
- ? ThreadWakeupReason::Timeout
- : ThreadWakeupReason::Signal;
- callback(thread, context, reason);
- context.WriteToOutgoingCommandBuffer(*thread);
- return true;
- });
- const auto readable_event{writable_event->GetReadableEvent()};
- writable_event->Clear();
- thread->SetHLESyncObject(readable_event.get());
- thread->SetStatus(ThreadStatus::WaitHLEEvent);
- thread->SetSynchronizationResults(nullptr, RESULT_TIMEOUT);
- readable_event->AddWaitingThread(thread);
- }
- thread->SetHLETimeEvent(event_handle);
-
- is_thread_waiting = true;
-
- return writable_event;
-}
-
HLERequestContext::HLERequestContext(KernelCore& kernel, Core::Memory::Memory& memory,
std::shared_ptr<ServerSession> server_session,
std::shared_ptr<Thread> thread)