diff options
| author | vaxerski <vaxry@vaxry.net> | 2025-01-19 15:39:19 +0100 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2025-01-19 16:11:12 +0100 |
| commit | 8dd2cd41fb4c5a5eb6886cc190419b36084cabfa (patch) | |
| tree | 713dfeb4f2bf75c2a04ed93166b5f9109dac9a84 /src/plugins/PluginSystem.cpp | |
| parent | 0a0e56d99c3b5f900ec561b3fe9a3c8a64fe1217 (diff) | |
core: move to inotify for monitoring the config files
instead of manually polling every second which is not efficient, use inotify.
an added bonus is that inotify is much much faster
Diffstat (limited to 'src/plugins/PluginSystem.cpp')
| -rw-r--r-- | src/plugins/PluginSystem.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/PluginSystem.cpp b/src/plugins/PluginSystem.cpp index ce7dd7c7..e849bf11 100644 --- a/src/plugins/PluginSystem.cpp +++ b/src/plugins/PluginSystem.cpp @@ -5,6 +5,7 @@ #include "../config/ConfigManager.hpp" #include "../managers/LayoutManager.hpp" #include "../managers/HookSystemManager.hpp" +#include "../managers/eventLoop/EventLoopManager.hpp" CPluginSystem::CPluginSystem() { g_pFunctionHookSystem = std::make_unique<CHookSystem>(); @@ -82,7 +83,7 @@ CPlugin* CPluginSystem::loadPlugin(const std::string& path) { PLUGIN->version = PLUGINDATA.version; PLUGIN->name = PLUGINDATA.name; - g_pConfigManager->m_bForceReload = true; + g_pEventLoopManager->doLater([] { g_pConfigManager->reload(); }); Debug::log(LOG, R"( [PluginSystem] Plugin {} loaded. Handle: {:x}, path: "{}", author: "{}", description: "{}", version: "{}")", PLUGINDATA.name, (uintptr_t)MODULE, path, PLUGINDATA.author, PLUGINDATA.description, PLUGINDATA.version); @@ -137,7 +138,7 @@ void CPluginSystem::unloadPlugin(const CPlugin* plugin, bool eject) { Debug::log(LOG, " [PluginSystem] Plugin {} unloaded.", PLNAME); // reload config to fix some stuf like e.g. unloadedPluginVars - g_pConfigManager->m_bForceReload = true; + g_pEventLoopManager->doLater([] { g_pConfigManager->reload(); }); } void CPluginSystem::unloadAllPlugins() { |
