moved timeq loop to the "main thread" and made it more precise
[NeonServV5.git] / src / main.c
index 4ad2d0d5c0f13626048ecb4833c6f51266be678e..ffa830d2a90563b04f67c442a339feb45327596b 100644 (file)
@@ -103,11 +103,8 @@ void * thread_main(void *arg) {
         do {
             socket_loop(SOCKET_SELECT_TIME);
         } while(time(0) < socket_wait);
-        timeq_tick();
-        loop_bots();
         clearTempUsers();
         destroyEvents();
-        queue_loop();
     }
     running_threads--;
     return NULL;
@@ -168,6 +165,13 @@ main:
         running_threads++;
         pthread_create(&tid[tid_id], NULL, thread_main, NULL);
     }
+    int usleep_delay = 1000000 / TICKS_PER_SECOND;
+    while(running) {
+        timeq_tick();
+        loop_bots();
+        queue_loop();
+        usleep(usleep_delay);
+    }
     for(tid_id = 0; tid_id < worker_threads; tid_id++) {
         pthread_join(tid[tid_id], NULL);
     }