From: Ben Harris Date: Sat, 24 Nov 2018 01:30:34 +0000 (+0000) Subject: Don't call clock_getting unnecessarily at startup. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~bjharris/git?a=commitdiff_plain;h=9792e6db46cf22e30a9b32acc45d110a343f828d;p=clunk.git Don't call clock_getting unnecessarily at startup. If the use has specified -s or -f, we don't need to initialise our idea of the displayed time from CLOCK_REALTIME. --- diff --git a/clunk.c b/clunk.c index 5a0ad11..a924bba 100644 --- a/clunk.c +++ b/clunk.c @@ -199,6 +199,7 @@ init(int argc, char **argv) int opt; tzset(); + if (sigemptyset(&signals_to_block) != 0 || sigaddset(&signals_to_block, SIGINT) != 0 || sigaddset(&signals_to_block, SIGTERM) != 0) @@ -211,11 +212,6 @@ init(int argc, char **argv) if (timer_create(CLOCK_REALTIME, &sev, &main_timer) != 0) err(1, "timer_create"); - if (clock_gettime(CLOCK_REALTIME, &ts) != 0) - err(1, "clock_gettime"); - if (localtime_r(&ts.tv_sec, &displayed) == NULL) - err(1, "localtime_r"); - displayed.tm_sec = (displayed.tm_sec >= 30) ? 30 : 0; while ((opt = getopt(argc, argv, "f:g:s:")) != -1) { switch (opt) { case 'f': @@ -234,6 +230,13 @@ init(int argc, char **argv) /* Allow -s to override state read from file. */ if (statestr != NULL) init_statestring(statestr); + if (statefile == NULL && statestr == NULL) { + if (clock_gettime(CLOCK_REALTIME, &ts) != 0) + err(1, "clock_gettime"); + if (localtime_r(&ts.tv_sec, &displayed) == NULL) + err(1, "localtime_r"); + displayed.tm_sec = (displayed.tm_sec >= 30) ? 30 : 0; + } } enum need_adjust { STOP, TICK, ADVANCE };