collectd-tg: Fix sleep interval.
[collectd.git] / src / collectd-tg.c
index 7db9fe7..273265c 100644 (file)
@@ -414,11 +414,11 @@ int main (int argc, char **argv) /* {{{ */
 
       while (now < vl->time)
       {
-        /* 1 / 100 second */
-        struct timespec ts = { 0, 10000000 };
-
-        ts.tv_sec = (time_t) now;
-        ts.tv_nsec = (long) ((now - ((double) ts.tv_sec)) * 1e9);
+        double diff = vl->time - now;
+        struct timespec ts = {
+          .tv_sec = (time_t) diff,
+        };
+        ts.tv_nsec = (long) ((diff - ((double) ts.tv_sec)) * 1e9);
 
         nanosleep (&ts, /* remaining = */ NULL);
         now = dtime ();