diff options
| -rw-r--r-- | i3status.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| @@ -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(¤t_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);          }  } | 
