summaryrefslogtreecommitdiff
path: root/src/render.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/render.c')
-rw-r--r--src/render.c9
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;