diff options
Diffstat (limited to 'dwmclock.c')
-rw-r--r-- | dwmclock.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -62,6 +62,9 @@ void handler(int sig) int main(void) { +#ifdef EXACT_SLEEP + struct timespec ts; +#endif /* EXACT_SLEEP */ struct tm *tm; time_t now; #ifdef BATTERY @@ -128,13 +131,25 @@ int main(void) perc[7] = ' '; #endif /* BATTERY */ +#ifdef EXACT_SLEEP + clock_gettime(CLOCK_REALTIME, &ts); + now = ts.tv_sec; +#else now = time(NULL); +#endif /* EXACT_SLEEP */ tm = localtime(&now); strftime(clock, 9, "%H:%M:%S", tm); XStoreName(disp, root, name); XFlush(disp); + +#ifdef EXACT_SLEEP + ts.tv_sec = 0; + ts.tv_nsec = 1000000000 - ts.tv_nsec; + nanosleep(&ts, NULL); +#else sleep(1); +#endif /* EXACT_SLEEP */ } XCloseDisplay(disp); |