fix lockup on reloading config

This commit is contained in:
vaxerski 2022-03-20 19:58:12 +01:00
parent db56e01c63
commit 2e9bd86c8b
2 changed files with 13 additions and 5 deletions

View file

@ -13,8 +13,8 @@
CConfigManager::CConfigManager() { CConfigManager::CConfigManager() {
configValues["general:max_fps"].intValue = 240; configValues["general:max_fps"].intValue = 240;
configValues["general:sensitivity"].floatValue = 0.25f; configValues["general:sensitivity"].floatValue = 0.25f;
configValues["general:main_mod"].strValue = "SUPER"; // exposed to the user for easier configuring 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_internal"].intValue = g_pKeybindManager->stringToModMask("SUPER"); // actually used and automatically calculated
configValues["general:border_size"].intValue = 1; configValues["general:border_size"].intValue = 1;
configValues["general:gaps_in"].intValue = 5; configValues["general:gaps_in"].intValue = 5;
@ -24,6 +24,7 @@ CConfigManager::CConfigManager() {
} }
void CConfigManager::init() { void CConfigManager::init() {
loadConfigLoadVars(); loadConfigLoadVars();
const char* const ENVHOME = getenv("HOME"); const char* const ENVHOME = getenv("HOME");
@ -289,7 +290,8 @@ void CConfigManager::tick() {
struct stat fileStat; struct stat fileStat;
int err = stat(CONFIGPATH.c_str(), &fileStat); int err = stat(CONFIGPATH.c_str(), &fileStat);
if (err != 0) { 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 // check if we need to reload cfg

View file

@ -14,15 +14,21 @@ CThreadManager::~CThreadManager() {
// //
} }
int slowUpdate = 0;
void CThreadManager::handle() { void CThreadManager::handle() {
g_pConfigManager->init(); g_pConfigManager->init();
while (3.1415f) { while (3.1415f) {
g_pConfigManager->tick(); slowUpdate++;
if (slowUpdate >= g_pConfigManager->getInt("general:max_fps")){
g_pConfigManager->tick();
slowUpdate = 0;
}
HyprCtl::tickHyprCtl(); 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")));
} }
} }