diff options
author | bunnei <bunneidev@gmail.com> | 2014-11-30 14:41:49 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2014-11-30 14:41:49 +0100 |
commit | a5afad09378dab8978e8e4149337aebf70891668 (patch) | |
tree | 8affb19959e7b78fdb0b1aea80569b2ba30b1863 /src | |
parent | Merge pull request #228 from linkmauve/glfw-error (diff) | |
parent | Thread: Check that thread is actually in "wait state" when verifying wait. (diff) | |
download | yuzu-a5afad09378dab8978e8e4149337aebf70891668.tar yuzu-a5afad09378dab8978e8e4149337aebf70891668.tar.gz yuzu-a5afad09378dab8978e8e4149337aebf70891668.tar.bz2 yuzu-a5afad09378dab8978e8e4149337aebf70891668.tar.lz yuzu-a5afad09378dab8978e8e4149337aebf70891668.tar.xz yuzu-a5afad09378dab8978e8e4149337aebf70891668.tar.zst yuzu-a5afad09378dab8978e8e4149337aebf70891668.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/kernel/thread.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/svc.cpp | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index f3f54a4e9..f59795901 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -143,7 +143,7 @@ void ChangeReadyState(Thread* t, bool ready) { /// Verify that a thread has not been released from waiting inline bool VerifyWait(const Thread* thread, WaitType type, Handle wait_handle) { _dbg_assert_(KERNEL, thread != nullptr); - return type == thread->wait_type && wait_handle == thread->wait_handle; + return (type == thread->wait_type) && (wait_handle == thread->wait_handle) && (thread->IsWaiting()); } /// Stops the current thread diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 87d768856..43a3cbe03 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp @@ -189,6 +189,8 @@ static Result CreateAddressArbiter(u32* arbiter) { /// Arbitrate address static Result ArbitrateAddress(Handle arbiter, u32 address, u32 type, u32 value, s64 nanoseconds) { + DEBUG_LOG(SVC, "called handle=0x%08X, address=0x%08X, type=0x%08X, value=0x%08X", arbiter, + address, type, value); return Kernel::ArbitrateAddress(arbiter, static_cast<Kernel::ArbitrationType>(type), address, value).raw; } @@ -331,6 +333,9 @@ static Result ClearEvent(Handle evt) { /// Sleep the current thread static void SleepThread(s64 nanoseconds) { DEBUG_LOG(SVC, "called nanoseconds=%lld", nanoseconds); + + // Check for next thread to schedule + HLE::Reschedule(__func__); } /// This returns the total CPU ticks elapsed since the CPU was powered-on |