diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index 311bf11de2..b628cf61fc 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -565,13 +565,15 @@ void Refresh() g_wiimote_scanner.StopScanning(); { - std::lock_guard lk(g_refresh_lock); - + std::unique_lock lk(g_refresh_lock); std::vector found_wiimotes; if (0 != CalculateWantedWiimotes()) { + // Don't hang dolphin when searching + lk.unlock(); found_wiimotes = g_wiimote_scanner.FindWiimotes(); + lk.lock(); } CheckForDisconnectedWiimotes();