From f1ae85282c752557b11626e75c8b561e54ef658a Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Tue, 1 Sep 2020 02:15:14 +0100 Subject: [PATCH] WiimoteReal: actually stop continuous scanning --- Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp index 031ad1690a..5ed7e1dd38 100644 --- a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp @@ -669,15 +669,19 @@ void WiimoteScanner::ThreadFunc() { m_scan_mode_changed_event.WaitFor(std::chrono::milliseconds(500)); + if (m_scan_mode.load() == WiimoteScanMode::DO_NOT_SCAN) + continue; + + // Stop scanning if not in continous mode. + auto scan_mode = WiimoteScanMode::SCAN_ONCE; + m_scan_mode.compare_exchange_strong(scan_mode, WiimoteScanMode::DO_NOT_SCAN); + // Does stuff needed to detect disconnects on Windows for (const auto& backend : m_backends) backend->Update(); CheckForDisconnectedWiimotes(); - if (m_scan_mode.load() == WiimoteScanMode::DO_NOT_SCAN) - continue; - // If we don't want Wiimotes in ControllerInterface, we may not need them at all. if (!SConfig::GetInstance().connect_wiimotes_for_ciface) { @@ -722,10 +726,6 @@ void WiimoteScanner::ThreadFunc() } } } - - // Stop scanning if not in continous mode. - auto scan_mode = WiimoteScanMode::SCAN_ONCE; - m_scan_mode.compare_exchange_strong(scan_mode, WiimoteScanMode::DO_NOT_SCAN); } {