+ if (!done) {
+ clock_gettime(CLOCK_MONOTONIC, ¤t);
+ difftimespec(&diff, ¤t, &start);
+
+ intspec.tv_sec = interval / 1000;
+ intspec.tv_nsec = (interval % 1000) * 1000000;
+ difftimespec(&wait, &intspec, &diff);
+
+ if (wait.tv_sec >= 0) {
+ nanosleep(&wait, NULL);
+ }