From 6b9eba57612521925fea41471af730f824ae6705 Mon Sep 17 00:00:00 2001 From: degasus Date: Wed, 12 Aug 2015 18:39:38 +0200 Subject: [PATCH] Wiimotes: Initialize all atomic globally. This fixes an issue with broken real wiimotes on linux. --- Source/Core/Core/HW/WiimoteReal/IONix.cpp | 3 +-- Source/Core/Core/HW/WiimoteReal/IOWin.cpp | 2 -- Source/Core/Core/HW/WiimoteReal/IOdarwin.mm | 2 -- Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp | 1 - Source/Core/Core/HW/WiimoteReal/WiimoteReal.h | 12 ++++++------ 5 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Source/Core/Core/HW/WiimoteReal/IONix.cpp b/Source/Core/Core/HW/WiimoteReal/IONix.cpp index 687a9af3a2..afbaa434b4 100644 --- a/Source/Core/Core/HW/WiimoteReal/IONix.cpp +++ b/Source/Core/Core/HW/WiimoteReal/IONix.cpp @@ -36,8 +36,7 @@ private: }; WiimoteScanner::WiimoteScanner() - : m_want_wiimotes() - , device_id(-1) + : device_id(-1) , device_sock(-1) { // Get the id of the first Bluetooth device. diff --git a/Source/Core/Core/HW/WiimoteReal/IOWin.cpp b/Source/Core/Core/HW/WiimoteReal/IOWin.cpp index b41c02ca66..4f9402e2ac 100644 --- a/Source/Core/Core/HW/WiimoteReal/IOWin.cpp +++ b/Source/Core/Core/HW/WiimoteReal/IOWin.cpp @@ -220,8 +220,6 @@ void RemoveWiimote(BLUETOOTH_DEVICE_INFO_STRUCT&); bool ForgetWiimote(BLUETOOTH_DEVICE_INFO_STRUCT&); WiimoteScanner::WiimoteScanner() - : m_run_thread() - , m_want_wiimotes() { init_lib(); } diff --git a/Source/Core/Core/HW/WiimoteReal/IOdarwin.mm b/Source/Core/Core/HW/WiimoteReal/IOdarwin.mm index febb029073..5f6271e82c 100644 --- a/Source/Core/Core/HW/WiimoteReal/IOdarwin.mm +++ b/Source/Core/Core/HW/WiimoteReal/IOdarwin.mm @@ -71,8 +71,6 @@ private: }; WiimoteScanner::WiimoteScanner() - : m_run_thread() - , m_want_wiimotes() {} WiimoteScanner::~WiimoteScanner() diff --git a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp index 7dc4b86f04..5675436c75 100644 --- a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp @@ -43,7 +43,6 @@ Wiimote::Wiimote() , m_channel(0) , m_last_connect_request_counter(0) , m_rumble_state() - , m_need_prepare() {} void Wiimote::Shutdown() diff --git a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.h b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.h index 9c8b5f1815..55c4c9ed6f 100644 --- a/Source/Core/Core/HW/WiimoteReal/WiimoteReal.h +++ b/Source/Core/Core/HW/WiimoteReal/WiimoteReal.h @@ -99,11 +99,11 @@ private: std::thread m_wiimote_thread; // Whether to keep running the thread. - std::atomic m_run_thread; + std::atomic m_run_thread {false}; // Whether to call PrepareOnThread. - std::atomic m_need_prepare; + std::atomic m_need_prepare {false}; // Whether the thread has finished ConnectInternal. - std::atomic m_thread_ready; + std::atomic m_thread_ready {false}; std::mutex m_thread_ready_mutex; std::condition_variable m_thread_ready_cond; @@ -137,9 +137,9 @@ private: std::thread m_scan_thread; - std::atomic m_run_thread; - std::atomic m_want_wiimotes; - std::atomic m_want_bb; + std::atomic m_run_thread {false}; + std::atomic m_want_wiimotes {false}; + std::atomic m_want_bb {false}; #if defined(_WIN32) void CheckDeviceType(std::basic_string &devicepath, bool &real_wiimote, bool &is_bb);