diff options
| author | 2015-01-18 01:27:46 -0500 | |
|---|---|---|
| committer | 2015-01-21 19:11:47 -0500 | |
| commit | 6643673f28b9273149fc945849a13ed832e9ef33 (patch) | |
| tree | 026410cf5b0b57d350ac979380307991646e546c /src/core/hle/kernel/thread.h | |
| parent | Kernel: Separate WaitSynchronization into Wait and Acquire methods. (diff) | |
| download | yuzu-6643673f28b9273149fc945849a13ed832e9ef33.tar.gz yuzu-6643673f28b9273149fc945849a13ed832e9ef33.tar.xz yuzu-6643673f28b9273149fc945849a13ed832e9ef33.zip | |
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/thread.h')
| -rw-r--r-- | src/core/hle/kernel/thread.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h index 9faf89c15..dff6bbaec 100644 --- a/src/core/hle/kernel/thread.h +++ b/src/core/hle/kernel/thread.h | |||
| @@ -70,7 +70,7 @@ public: | |||
| 70 | inline bool IsSuspended() const { return (status & THREADSTATUS_SUSPEND) != 0; } | 70 | inline bool IsSuspended() const { return (status & THREADSTATUS_SUSPEND) != 0; } |
| 71 | inline bool IsIdle() const { return idle; } | 71 | inline bool IsIdle() const { return idle; } |
| 72 | 72 | ||
| 73 | ResultVal<bool> Wait(unsigned index) override; | 73 | ResultVal<bool> Wait(bool wait_thread) override; |
| 74 | ResultVal<bool> Acquire() override; | 74 | ResultVal<bool> Acquire() override; |
| 75 | 75 | ||
| 76 | s32 GetPriority() const { return current_priority; } | 76 | s32 GetPriority() const { return current_priority; } |
| @@ -117,7 +117,7 @@ public: | |||
| 117 | s32 processor_id; | 117 | s32 processor_id; |
| 118 | 118 | ||
| 119 | WaitType wait_type; | 119 | WaitType wait_type; |
| 120 | std::vector<std::pair<SharedPtr<WaitObject>, unsigned>> wait_objects; | 120 | std::vector<SharedPtr<WaitObject>> wait_objects; |
| 121 | VAddr wait_address; | 121 | VAddr wait_address; |
| 122 | 122 | ||
| 123 | std::string name; | 123 | std::string name; |