init: Request SCHED_RR using CAP_SYS_NICE and add Python to nix dev shell (#2690)
* nix: add python3 to devShell * init: request SCHED_RR scheduling policy * init: checks if host supports reseting scheduler on fork * init: make gainRealTime more compatible with other OSes * init: remove linux-only code
This commit is contained in:
parent
50e6f368ff
commit
9fc5f4c48b
4 changed files with 19 additions and 1 deletions
|
|
@ -3,3 +3,19 @@
|
|||
bool Init::isSudo() {
|
||||
return getuid() != geteuid() || !geteuid();
|
||||
}
|
||||
|
||||
void Init::gainRealTime() {
|
||||
const int minPrio = sched_get_priority_min(SCHED_RR);
|
||||
const struct sched_param param = {.sched_priority = minPrio};
|
||||
|
||||
if (pthread_setschedparam(pthread_self(), SCHED_RR, ¶m)) {
|
||||
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, ¶m))
|
||||
Debug::log(WARN, "Failed to reset process scheduling strategy");
|
||||
});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue