From 175b266c34023a2160658c31c5136eaac5a9c352 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 26 Feb 2021 20:17:34 +0000 Subject: [PATCH] time thread priority + nanosleep Former-commit-id: c84f296edabc001a1836ab8437f746dcff811148 --- src/server.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/server.cpp b/src/server.cpp index 1bc9ab175..b9adea1b5 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -6068,9 +6068,12 @@ void OnTerminate() } void *timeThreadMain(void*) { + timespec delay; + delay.tv_sec = 0; + delay.tv_nsec = 100; while (true) { updateCachedTime(); - usleep(1); + clock_nanosleep(CLOCK_REALTIME, 0, &delay, NULL); } } @@ -6422,6 +6425,9 @@ int main(int argc, char **argv) { serverAssert(cserver.cthreads > 0 && cserver.cthreads <= MAX_EVENT_LOOPS); pthread_create(&cserver.time_thread_id, nullptr, timeThreadMain, nullptr); + struct sched_param time_thread_priority; + time_thread_priority.sched_priority = sched_get_priority_max(SCHED_FIFO); + pthread_setschedparam(cserver.time_thread_id, SCHED_FIFO, &time_thread_priority); pthread_attr_t tattr; pthread_attr_init(&tattr);