From 9e6ec3b6cd23a7cef80a1d62fda515018f080083 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 18 Jan 2015 20:40:53 -0500 Subject: Session: Change to a WaitObject. --- src/core/hle/kernel/kernel.cpp | 2 +- src/core/hle/kernel/kernel.h | 1 + src/core/hle/kernel/session.h | 8 +++++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 6f1dced7..69234985 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -39,7 +39,7 @@ Thread* WaitObject::ReleaseNextThread() { next_thread->ReleaseWaitObject(this); - return next_thread.get(); + return next_thread; } void WaitObject::WakeupAllWaitingThreads() { diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index a9a893f4..ca9ccf4b 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h @@ -71,6 +71,7 @@ public: */ bool IsWaitable() const { switch (GetHandleType()) { + case HandleType::Session: case HandleType::Event: case HandleType::Mutex: case HandleType::Thread: diff --git a/src/core/hle/kernel/session.h b/src/core/hle/kernel/session.h index 91f3ffc2..e11f727a 100644 --- a/src/core/hle/kernel/session.h +++ b/src/core/hle/kernel/session.h @@ -41,7 +41,7 @@ inline static u32* GetCommandBuffer(const int offset=0) { * CTR-OS so that IPC calls can be optionally handled by the real implementations of processes, as * opposed to HLE simulations. */ -class Session : public Object { +class Session : public WaitObject { public: std::string GetTypeName() const override { return "Session"; } @@ -53,6 +53,12 @@ public: * aren't supported yet. */ virtual ResultVal SyncRequest() = 0; + + ResultVal Wait() override { + // TODO(bunnei): This function exists to satisfy a hardware test with a Session object + // passed into WaitSynchronization. Not sure if it's possible for this to ever be false? + return MakeResult(true); + } }; } -- cgit v1.2.3