diff src/event/modules/ngx_kqueue_module.c @ 51:a6afbb8a2ada

nginx-0.0.1-2003-01-24-09:20:47 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 24 Jan 2003 06:20:47 +0000
parents b288069a8696
children d1e42f1b8fd4
line wrap: on
line diff
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -175,6 +175,22 @@ int ngx_kqueue_process_events(ngx_log_t 
     struct timeval   tv;
     struct timespec  ts, *tp;
 
+    timer = ngx_event_find_timer();
+
+    if (timer) {
+        ts.tv_sec = timer / 1000;
+        ts.tv_nsec = (timer % 1000) * 1000000;
+        tp = &ts;
+        gettimeofday(&tv, NULL);
+        delta = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+
+    } else {
+        timer = 0;
+        delta = 0;
+        tp = NULL;
+    }
+
+#if 0
     if (timer_queue.timer_next != &timer_queue) {
         timer = timer_queue.timer_next->timer_delta;
         ts.tv_sec = timer / 1000;
@@ -188,6 +204,7 @@ int ngx_kqueue_process_events(ngx_log_t 
         delta = 0;
         tp = NULL;
     }
+#endif
 
 #if (NGX_DEBUG_EVENT)
     ngx_log_debug(log, "kevent timer: %d" _ timer);
@@ -267,6 +284,11 @@ int ngx_kqueue_process_events(ngx_log_t 
         }
     }
 
+    if (timer) {
+        ngx_event_expire_timers(delta);
+    }
+
+#if 0
     if (timer && timer_queue.timer_next != &timer_queue) {
         if (delta >= timer_queue.timer_next->timer_delta) {
             for ( ;; ) {
@@ -289,6 +311,7 @@ int ngx_kqueue_process_events(ngx_log_t 
            timer_queue.timer_next->timer_delta -= delta;
         }
     }
+#endif
 
     return NGX_OK;
 }