summaryrefslogtreecommitdiff
path: root/src/dged/reactor-kqueue.c
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2025-11-18 17:17:14 +0100
committerAlbert Cervin <albert@acervin.com>2025-11-19 11:06:32 +0100
commitfd5683cdc61efa37a1be7b94901f75c5409d2297 (patch)
treeecc88724fb0c0ac408daea1fca7a69a48416b96f /src/dged/reactor-kqueue.c
parent9cf86e6dcafc8e7d9a314fb8fdc87347eb00fb2c (diff)
downloaddged-fd5683cdc61efa37a1be7b94901f75c5409d2297.tar.gz
dged-fd5683cdc61efa37a1be7b94901f75c5409d2297.tar.xz
dged-fd5683cdc61efa37a1be7b94901f75c5409d2297.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.c10
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;