diff options
author | bunnei <bunneidev@gmail.com> | 2015-01-18 01:27:46 -0500 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2015-01-21 19:11:47 -0500 |
commit | 6643673f28b9273149fc945849a13ed832e9ef33 (patch) | |
tree | 026410cf5b0b57d350ac979380307991646e546c /src/core/hle/kernel/kernel.h | |
parent | aa01c57ae9d73e41b65d37860ca6fbb91caba33a (diff) |
WaitSynchronizationN: Refactor to fix several bugs
- Separate wait checking from waiting the current thread
- Resume thread when wait_all=true only if all objects are available at once
- Set output to correct wait object index when there are duplicate handles
Diffstat (limited to 'src/core/hle/kernel/kernel.h')
-rw-r--r-- | src/core/hle/kernel/kernel.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index d98fd038..cfaf0c90 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h @@ -65,18 +65,18 @@ public: virtual Kernel::HandleType GetHandleType() const = 0; /** - * Wait the current thread for kernel object to synchronize. - * @param index Index of wait object (only applies to WaitSynchronizationN) - * @return True if the current thread should wait as a result of the wait + * Check if this object is available, (optionally) wait the current thread if not + * @param wait_thread If true, wait the current thread if this object is unavailable + * @return True if the current thread should wait due to this object being unavailable */ - virtual ResultVal<bool> Wait(unsigned index = 0) { + virtual ResultVal<bool> Wait(bool wait_thread) { LOG_ERROR(Kernel, "(UNIMPLEMENTED)"); return UnimplementedFunction(ErrorModule::Kernel); } /** - * Acquire/lock the kernel object if it is available - * @return True if we were able to acquire the kernel object, otherwise false + * Acquire/lock the this object if it is available + * @return True if we were able to acquire this object, otherwise false */ virtual ResultVal<bool> Acquire() { LOG_ERROR(Kernel, "(UNIMPLEMENTED)"); |