diff --git a/rpcs3/Emu/Memory/vm.cpp b/rpcs3/Emu/Memory/vm.cpp index 0c2c719957..36e9c2e636 100644 --- a/rpcs3/Emu/Memory/vm.cpp +++ b/rpcs3/Emu/Memory/vm.cpp @@ -391,14 +391,19 @@ namespace vm return; } + if (!get_range_lock_bits(true)) [[likely]] + { + return; + } + if (i < 100) busy_wait(200); else std::this_thread::yield(); - if (!get_range_lock_bits(true)) [[likely]] + if (cpu_flag::wait - cpu.state) { - return; + cpu.state += cpu_flag::wait; } } }