ControllerInterface: add mutex around callbacks vector
This commit is contained in:
parent
1ed7532af8
commit
fd7cbd633e
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
#include "InputCommon/ControllerInterface/ControllerInterface.h"
|
#include "InputCommon/ControllerInterface/ControllerInterface.h"
|
||||||
|
|
||||||
#include <mutex>
|
#include <algorithm>
|
||||||
|
|
||||||
#include "Common/Logging/Log.h"
|
#include "Common/Logging/Log.h"
|
||||||
|
|
||||||
|
@ -232,6 +232,7 @@ void ControllerInterface::UpdateInput()
|
||||||
//
|
//
|
||||||
void ControllerInterface::RegisterDevicesChangedCallback(std::function<void()> callback)
|
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));
|
m_devices_changed_callbacks.emplace_back(std::move(callback));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,6 +243,7 @@ void ControllerInterface::RegisterDevicesChangedCallback(std::function<void()> c
|
||||||
//
|
//
|
||||||
void ControllerInterface::InvokeDevicesChangedCallbacks() const
|
void ControllerInterface::InvokeDevicesChangedCallbacks() const
|
||||||
{
|
{
|
||||||
|
std::lock_guard<std::mutex> lk(m_callbacks_mutex);
|
||||||
for (const auto& callback : m_devices_changed_callbacks)
|
for (const auto& callback : m_devices_changed_callbacks)
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,11 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <map>
|
#include <memory>
|
||||||
#include <sstream>
|
#include <mutex>
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "Common/CommonTypes.h"
|
|
||||||
#include "InputCommon/ControllerInterface/Device.h"
|
#include "InputCommon/ControllerInterface/Device.h"
|
||||||
|
|
||||||
// enable disable sources
|
// enable disable sources
|
||||||
|
@ -58,6 +55,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<std::function<void()>> m_devices_changed_callbacks;
|
std::vector<std::function<void()>> m_devices_changed_callbacks;
|
||||||
|
mutable std::mutex m_callbacks_mutex;
|
||||||
bool m_is_init;
|
bool m_is_init;
|
||||||
void* m_hwnd;
|
void* m_hwnd;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue