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 ();