diff options
author | bunnei <bunneidev@gmail.com> | 2015-01-19 02:40:53 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2015-01-22 02:47:47 +0100 |
commit | 9e6ec3b6cd23a7cef80a1d62fda515018f080083 (patch) | |
tree | e1657378ee0bce660d4c5a53f8d4a4ebc35d6d67 /src/core | |
parent | Kernel: Reschedule on SignalEvent and SendSyncRequest, fix some bugs. (diff) | |
download | yuzu-9e6ec3b6cd23a7cef80a1d62fda515018f080083.tar yuzu-9e6ec3b6cd23a7cef80a1d62fda515018f080083.tar.gz yuzu-9e6ec3b6cd23a7cef80a1d62fda515018f080083.tar.bz2 yuzu-9e6ec3b6cd23a7cef80a1d62fda515018f080083.tar.lz yuzu-9e6ec3b6cd23a7cef80a1d62fda515018f080083.tar.xz yuzu-9e6ec3b6cd23a7cef80a1d62fda515018f080083.tar.zst yuzu-9e6ec3b6cd23a7cef80a1d62fda515018f080083.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/kernel/kernel.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/kernel/kernel.h | 1 | ||||
-rw-r--r-- | 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 6f1dced70..692349857 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 a9a893f41..ca9ccf4bf 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 91f3ffc2c..e11f727a5 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<bool> SyncRequest() = 0; + + ResultVal<bool> 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<bool>(true); + } }; } |