diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-20 19:58:12 +0100 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-20 19:58:12 +0100 |
| commit | 2e9bd86c8bfde8d55ce82f85008210b3a0a5b430 (patch) | |
| tree | bb6a042fea65c37f4ded2bdc681e6d51c67941e1 /src | |
| parent | db56e01c63aaebfb6526aee83b99039eb8dc5f4b (diff) | |
fix lockup on reloading config
Diffstat (limited to 'src')
| -rw-r--r-- | src/config/ConfigManager.cpp | 8 | ||||
| -rw-r--r-- | src/managers/ThreadManager.cpp | 10 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 17a3232a..b4a218f0 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -13,8 +13,8 @@ CConfigManager::CConfigManager() { configValues["general:max_fps"].intValue = 240; configValues["general:sensitivity"].floatValue = 0.25f; - configValues["general:main_mod"].strValue = "SUPER"; // exposed to the user for easier configuring - configValues["general:main_mod_internal"].intValue = g_pKeybindManager->stringToModMask("SUPER"); // actually used and automatically calculated + configValues["general:main_mod"].strValue = "SUPER"; // exposed to the user for easier configuring + configValues["general:main_mod_internal"].intValue = g_pKeybindManager->stringToModMask("SUPER"); // actually used and automatically calculated configValues["general:border_size"].intValue = 1; configValues["general:gaps_in"].intValue = 5; @@ -24,6 +24,7 @@ CConfigManager::CConfigManager() { } void CConfigManager::init() { + loadConfigLoadVars(); const char* const ENVHOME = getenv("HOME"); @@ -289,7 +290,8 @@ void CConfigManager::tick() { struct stat fileStat; int err = stat(CONFIGPATH.c_str(), &fileStat); if (err != 0) { - Debug::log(WARN, "Error at ticking config, error %i", errno); + Debug::log(WARN, "Error at ticking config at %s, error %i: %s", CONFIGPATH.c_str(), err, strerror(err)); + return; } // check if we need to reload cfg diff --git a/src/managers/ThreadManager.cpp b/src/managers/ThreadManager.cpp index 0e2e962c..6ad6339b 100644 --- a/src/managers/ThreadManager.cpp +++ b/src/managers/ThreadManager.cpp @@ -14,15 +14,21 @@ CThreadManager::~CThreadManager() { // } +int slowUpdate = 0; + void CThreadManager::handle() { g_pConfigManager->init(); while (3.1415f) { - g_pConfigManager->tick(); + slowUpdate++; + if (slowUpdate >= g_pConfigManager->getInt("general:max_fps")){ + g_pConfigManager->tick(); + slowUpdate = 0; + } HyprCtl::tickHyprCtl(); - std::this_thread::sleep_for(std::chrono::microseconds(1000000 / g_pConfigManager->getInt("max_fps"))); + std::this_thread::sleep_for(std::chrono::microseconds(1000000 / g_pConfigManager->getInt("general:max_fps"))); } }
\ No newline at end of file |
