diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-06-03 14:08:44 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-06-03 14:08:44 +0200 |
commit | 777570d4c1f582b14dda52ffc226b20fb4346940 (patch) | |
tree | 83391cb3b0440212090de173b8bb65e3959fa4e9 /rtkit-daemon.c | |
parent | be9eb39a6c5fd2533128721458f87585b8f10fd6 (diff) |
daemon: bump up timer slack, our timers don't need to be on time
Diffstat (limited to 'rtkit-daemon.c')
-rw-r--r-- | rtkit-daemon.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/rtkit-daemon.c b/rtkit-daemon.c index 154889a..01c8bc6 100644 --- a/rtkit-daemon.c +++ b/rtkit-daemon.c @@ -2286,6 +2286,7 @@ int main(int argc, char *argv[]) { DBusConnection *bus = NULL; int ret = 1; struct rtkit_user *u; + unsigned long slack_ns; if (parse_command_line(argc, argv, &ret) <= 0) goto finish; @@ -2299,6 +2300,12 @@ int main(int argc, char *argv[]) { LOG_NDELAY|LOG_PID|(log_stderr ? LOG_PERROR : 0), LOG_DAEMON); + /* Raise our timer slack, we don't really need to be woken up + * on time. */ + slack_ns = (((unsigned long) canary_watchdog_msec - (unsigned long) canary_cheep_msec) / 2UL) * 1000000UL; + if (prctl(PR_SET_TIMERSLACK, slack_ns) < 0) + syslog(LOG_WARNING, "PRT_SET_TIMERSLACK failed: %s\n", strerror(errno)); + self_drop_realtime(our_nice_level); if (setup_dbus(&bus) < 0) |