summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Config/Config.cpp
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2023-08-26 16:34:46 +0200
committerGitHub <noreply@github.com>2023-08-26 16:34:46 +0200
commit2502e412b3ca333a866b36c14c232bb1f33af068 (patch)
treee2c2cb420b64ac6388799d017a7992ee553b0081 /Source/Core/Common/Config/Config.cpp
parentd8e35438bd1314d650c88e367782120b55f12327 (diff)
parentb62c25864f6d549976b94eda60763524413e896e (diff)
Merge pull request #12117 from JosJuice/config-callback-cpu
Don't call RunAsCPUThread in config callbacks
Diffstat (limited to 'Source/Core/Common/Config/Config.cpp')
-rw-r--r--Source/Core/Common/Config/Config.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/Source/Core/Common/Config/Config.cpp b/Source/Core/Common/Config/Config.cpp
index ff3a8c6783..3f008fc913 100644
--- a/Source/Core/Common/Config/Config.cpp
+++ b/Source/Core/Common/Config/Config.cpp
@@ -16,7 +16,7 @@ namespace Config
using Layers = std::map<LayerType, std::shared_ptr<Layer>>;
static Layers s_layers;
-static std::vector<std::pair<size_t, ConfigChangedCallback>> s_callbacks;
+static std::vector<std::pair<ConfigChangedCallbackID, ConfigChangedCallback>> s_callbacks;
static size_t s_next_callback_id = 0;
static u32 s_callback_guards = 0;
static std::atomic<u64> s_config_version = 0;
@@ -65,15 +65,15 @@ void RemoveLayer(LayerType layer)
OnConfigChanged();
}
-size_t AddConfigChangedCallback(ConfigChangedCallback func)
+ConfigChangedCallbackID AddConfigChangedCallback(ConfigChangedCallback func)
{
- const size_t callback_id = s_next_callback_id;
+ const ConfigChangedCallbackID callback_id{s_next_callback_id};
++s_next_callback_id;
s_callbacks.emplace_back(std::make_pair(callback_id, std::move(func)));
return callback_id;
}
-void RemoveConfigChangedCallback(size_t callback_id)
+void RemoveConfigChangedCallback(ConfigChangedCallbackID callback_id)
{
for (auto it = s_callbacks.begin(); it != s_callbacks.end(); ++it)
{
@@ -138,7 +138,6 @@ void Shutdown()
WriteLock lock(s_layers_rw_lock);
s_layers.clear();
- s_callbacks.clear();
}
void ClearCurrentRunLayer()