diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-03-06 20:36:05 -0400 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2020-06-27 11:35:31 -0400 |
commit | 6ed28e15fa9f4c727cf24990c35b13a35547d943 (patch) | |
tree | 41c7658c10675d16f1776a50ee0c96921dac074e /src | |
parent | 3de33348e41ab824eb13f202eccc29d5be2a6d42 (diff) |
Scheduler: Fix HLE Threads on guard
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/kernel/scheduler.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/hle/kernel/scheduler.cpp b/src/core/hle/kernel/scheduler.cpp index 74d3731fc..d7529360c 100644 --- a/src/core/hle/kernel/scheduler.cpp +++ b/src/core/hle/kernel/scheduler.cpp @@ -689,10 +689,12 @@ void Scheduler::SwitchToCurrent() { current_thread = selected_thread; guard.unlock(); while (!is_context_switch_pending) { - current_thread->context_guard.lock(); - if (current_thread->GetSchedulingStatus() != ThreadSchedStatus::Runnable) { - current_thread->context_guard.unlock(); - break; + if (current_thread != nullptr) { + current_thread->context_guard.lock(); + if (current_thread->GetSchedulingStatus() != ThreadSchedStatus::Runnable) { + current_thread->context_guard.unlock(); + break; + } } std::shared_ptr<Common::Fiber> next_context; if (current_thread != nullptr) { |