]> git.sur5r.net Git - i3/i3status/commitdiff
make refreshs align with minutes
authorGereon Kremer <gereon.kremer@rwth-aachen.de>
Sat, 5 Jan 2013 11:47:02 +0000 (12:47 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 8 Jan 2013 21:02:03 +0000 (22:02 +0100)
i3status.c

index 87a793b346e034bd22b08d29bc6d7cc6d98a7392..af62a7ce74c46fbb1c80d76b0a83fa5c4591e88e 100644 (file)
@@ -515,10 +515,11 @@ int main(int argc, char *argv[]) {
                 /* To provide updates on every full second (as good as possible)
                  * we don’t use sleep(interval) but we sleep until the next
                  * second (with microsecond precision) plus (interval-1)
-                 * seconds. */
+                 * seconds. We also align to 60 seconds modulo interval such
+                 * that we start with :00 on every new minute. */
                 struct timeval current_timeval;
                 gettimeofday(&current_timeval, NULL);
-                struct timespec ts = {interval - 1, (10e5 - current_timeval.tv_usec) * 1000};
+                struct timespec ts = {interval - 1 - (current_timeval.tv_sec % interval), (10e5 - current_timeval.tv_usec) * 1000};
                 nanosleep(&ts, NULL);
         }
 }