summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface
diff options
context:
space:
mode:
authorMichael M <mchtly@gmail.com>2017-11-10 12:29:25 -0800
committerMichael M <mchtly@gmail.com>2017-11-10 13:37:42 -0800
commitfd7cbd633edbac9e38592b9253a507410d7d6553 (patch)
tree8de0ebe9dc0f51f95a19db9702014df7eda85a66 /Source/Core/InputCommon/ControllerInterface
parent1ed7532af850691eea8d7eee502f59ed20a37694 (diff)
ControllerInterface: add mutex around callbacks vector
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp4
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.h8
2 files changed, 6 insertions, 6 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
index 1552cd7dc2..9e3c7ba7af 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
@@ -4,7 +4,7 @@
#include "InputCommon/ControllerInterface/ControllerInterface.h"
-#include <mutex>
+#include <algorithm>
#include "Common/Logging/Log.h"
@@ -232,6 +232,7 @@ void ControllerInterface::UpdateInput()
//
void ControllerInterface::RegisterDevicesChangedCallback(std::function<void()> callback)
{
+ std::lock_guard<std::mutex> lk(m_callbacks_mutex);
m_devices_changed_callbacks.emplace_back(std::move(callback));
}
@@ -242,6 +243,7 @@ void ControllerInterface::RegisterDevicesChangedCallback(std::function<void()> c
//
void ControllerInterface::InvokeDevicesChangedCallbacks() const
{
+ std::lock_guard<std::mutex> lk(m_callbacks_mutex);
for (const auto& callback : m_devices_changed_callbacks)
callback();
}
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
index e70c135b3e..b485cda31a 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
@@ -4,14 +4,11 @@
#pragma once
-#include <algorithm>
#include <functional>
-#include <map>
-#include <sstream>
-#include <string>
+#include <memory>
+#include <mutex>
#include <vector>
-#include "Common/CommonTypes.h"
#include "InputCommon/ControllerInterface/Device.h"
// enable disable sources
@@ -58,6 +55,7 @@ public:
private:
std::vector<std::function<void()>> m_devices_changed_callbacks;
+ mutable std::mutex m_callbacks_mutex;
bool m_is_init;
void* m_hwnd;
};