summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-03-20 19:58:12 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-03-20 19:58:12 +0100
commit2e9bd86c8bfde8d55ce82f85008210b3a0a5b430 (patch)
treebb6a042fea65c37f4ded2bdc681e6d51c67941e1 /src
parentdb56e01c63aaebfb6526aee83b99039eb8dc5f4b (diff)
fix lockup on reloading config
Diffstat (limited to 'src')
-rw-r--r--src/config/ConfigManager.cpp8
-rw-r--r--src/managers/ThreadManager.cpp10
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