Hyprland/src/init/initHelpers.cpp
ferrreo f6b340cc19
init: Fix for issue #2797 (#2799)
* Fix for issue #2797

* Fix for issue #2797

* Fix for issue #2797
2023-07-24 18:26:24 +02:00

29 lines
No EOL
882 B
C++

#include "initHelpers.hpp"
bool Init::isSudo() {
return getuid() != geteuid() || !geteuid();
}
void Init::gainRealTime() {
const int minPrio = sched_get_priority_min(SCHED_RR);
int old_policy;
struct sched_param param;
if (pthread_getschedparam(pthread_self(), &old_policy, &param)) {
Debug::log(WARN, "Failed to get old pthread scheduling priority");
return;
}
param.sched_priority = minPrio;
if (pthread_setschedparam(pthread_self(), SCHED_RR, &param)) {
Debug::log(WARN, "Failed to change process scheduling strategy");
return;
}
pthread_atfork(NULL, NULL, []() {
const struct sched_param param = {.sched_priority = 0};
if (pthread_setschedparam(pthread_self(), SCHED_OTHER, &param))
Debug::log(WARN, "Failed to reset process scheduling strategy");
});
}