diff options
| author | Albert Cervin <albert@acervin.com> | 2025-11-18 17:17:14 +0100 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2025-11-19 11:06:32 +0100 |
| commit | fd5683cdc61efa37a1be7b94901f75c5409d2297 (patch) | |
| tree | ecc88724fb0c0ac408daea1fca7a69a48416b96f /src/dged/reactor-kqueue.c | |
| parent | 9cf86e6dcafc8e7d9a314fb8fdc87347eb00fb2c (diff) | |
| download | dged-rendering-improvements.tar.gz dged-rendering-improvements.tar.xz dged-rendering-improvements.zip | |
Make sure rendering happens at least 7ms apartrendering-improvements
Running a lot faster just causes tearing.
Diffstat (limited to 'src/dged/reactor-kqueue.c')
| -rw-r--r-- | src/dged/reactor-kqueue.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/dged/reactor-kqueue.c b/src/dged/reactor-kqueue.c index d370653..c48e2aa 100644 --- a/src/dged/reactor-kqueue.c +++ b/src/dged/reactor-kqueue.c @@ -34,8 +34,14 @@ void reactor_destroy(struct reactor *reactor) { free(reactor); } -void reactor_update(struct reactor *reactor) { - int events = kevent(reactor->queue, NULL, 0, reactor->events, 16, NULL); +void reactor_update(struct reactor *reactor, int timeout_ms) { + struct timespec timeout = {0}; + if (timeout_ms >= 0) { + timeout.tv_nsec = timeout_ms * 1e6; + } + + int events = kevent(reactor->queue, NULL, 0, reactor->events, 16, + timeout_ms >= 0 ? &timeout : NULL); if (events == -1) { // TODO: what to do here? return; |
