diff options
| author | 2018-06-21 01:40:29 -0600 | |
|---|---|---|
| committer | 2018-06-21 01:40:29 -0600 | |
| commit | 9d71ce88cee58d2e171ec5ed82daf075112fb422 (patch) | |
| tree | 3e8dfaf638c2e63124295d2c8ed1b20c6060c847 /src/core/hle/kernel/thread.cpp | |
| parent | Kernel/Arbiters: Add stubs for 4.x SignalToAddress/WaitForAddres SVCs. (diff) | |
| download | yuzu-9d71ce88cee58d2e171ec5ed82daf075112fb422.tar.gz yuzu-9d71ce88cee58d2e171ec5ed82daf075112fb422.tar.xz yuzu-9d71ce88cee58d2e171ec5ed82daf075112fb422.zip | |
Kernel/Arbiters: Implement WaitForAddress
Diffstat (limited to 'src/core/hle/kernel/thread.cpp')
| -rw-r--r-- | src/core/hle/kernel/thread.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index cffa7ca83..2f333ec34 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp | |||
| @@ -140,6 +140,11 @@ static void ThreadWakeupCallback(u64 thread_handle, int cycles_late) { | |||
| 140 | } | 140 | } |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | if (thread->arb_wait_address != 0) { | ||
| 144 | ASSERT(thread->status == THREADSTATUS_WAIT_ARB); | ||
| 145 | thread->arb_wait_address = 0; | ||
| 146 | } | ||
| 147 | |||
| 143 | if (resume) | 148 | if (resume) |
| 144 | thread->ResumeFromWait(); | 149 | thread->ResumeFromWait(); |
| 145 | } | 150 | } |
| @@ -179,6 +184,7 @@ void Thread::ResumeFromWait() { | |||
| 179 | case THREADSTATUS_WAIT_SLEEP: | 184 | case THREADSTATUS_WAIT_SLEEP: |
| 180 | case THREADSTATUS_WAIT_IPC: | 185 | case THREADSTATUS_WAIT_IPC: |
| 181 | case THREADSTATUS_WAIT_MUTEX: | 186 | case THREADSTATUS_WAIT_MUTEX: |
| 187 | case THREADSTATUS_WAIT_ARB: | ||
| 182 | break; | 188 | break; |
| 183 | 189 | ||
| 184 | case THREADSTATUS_READY: | 190 | case THREADSTATUS_READY: |