diff options
Diffstat (limited to 'src/render.c')
| -rw-r--r-- | src/render.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/render.c b/src/render.c index 9c7d796..fd88278 100644 --- a/src/render.c +++ b/src/render.c @@ -146,8 +146,13 @@ static void render_seq(size_t n_inst, struct seq_inst inst[n_inst], struct scene (ts_now.tv_nsec - state->start_ts.tv_nsec) / 1000000000.0 + (ts_now.tv_sec - state->start_ts.tv_sec); double ahead = time - e_time - scene->live.data; - if (ahead > 0.0) - usleep(ahead * 1000000.0); + if (ahead > 0.0) { + uint64_t nanos = ahead * 1000000000.0; + struct timespec ts_sleep; + ts_sleep.tv_nsec = nanos % 1000000000; + ts_sleep.tv_sec = nanos / 1000000000; + nanosleep(&ts_sleep, nullptr); + } } struct draw_frame frame; |
