diff options
-rw-r--r-- | src/core/hle/kernel/kernel.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/svc.cpp | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index b3ca78ed6..6f1dced70 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -35,9 +35,9 @@ Thread* WaitObject::ReleaseNextThread() { return nullptr; auto next_thread = waiting_threads.front(); + waiting_threads.erase(waiting_threads.begin()); next_thread->ReleaseWaitObject(this); - waiting_threads.erase(waiting_threads.begin()); return next_thread.get(); } diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 8df861669..d72839172 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp @@ -405,6 +405,7 @@ static Result DuplicateHandle(Handle* out, Handle handle) { /// Signals an event static Result SignalEvent(Handle evt) { LOG_TRACE(Kernel_SVC, "called event=0x%08X", evt); + HLE::Reschedule(__func__); return Kernel::SignalEvent(evt).raw; } |