2
1
Fork 0
mirror of https://github.com/yuzu-emu/yuzu.git synced 2024-07-04 23:31:19 +01:00

Scheduler: Correct locking for hle threads.

This commit is contained in:
Fernando Sahmkow 2020-03-06 22:58:56 -04:00
parent 6ed28e15fa
commit 44cb9997b3

View file

@ -687,9 +687,10 @@ void Scheduler::SwitchToCurrent() {
guard.lock(); guard.lock();
selected_thread = selected_thread_set; selected_thread = selected_thread_set;
current_thread = selected_thread; current_thread = selected_thread;
is_context_switch_pending = false;
guard.unlock(); guard.unlock();
while (!is_context_switch_pending) { while (!is_context_switch_pending) {
if (current_thread != nullptr) { if (current_thread != nullptr && !current_thread->IsHLEThread()) {
current_thread->context_guard.lock(); current_thread->context_guard.lock();
if (current_thread->GetSchedulingStatus() != ThreadSchedStatus::Runnable) { if (current_thread->GetSchedulingStatus() != ThreadSchedStatus::Runnable) {
current_thread->context_guard.unlock(); current_thread->context_guard.unlock();