diff --git a/src/server.cpp b/src/server.cpp index b1124cac9..56c476aa8 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -6084,9 +6084,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); } } @@ -6438,6 +6441,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);