diff src/event/modules/ngx_kqueue_module.c @ 6:669801705ab1

nginx-0.0.1-2002-08-26-19:18:19 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 26 Aug 2002 15:18:19 +0000
parents 4eff17414a43
children b5481d6fbbd4
line wrap: on
line diff
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -18,7 +18,7 @@
 #error "kqueue is not supported on this platform"
 #endif
 
-static void ngx_add_timer(ngx_event_t *ev, u_int timer);
+static void ngx_add_timer_core(ngx_event_t *ev, u_int timer);
 static void ngx_inline ngx_del_timer(ngx_event_t *ev);
 
 
@@ -35,9 +35,11 @@ void ngx_kqueue_init(int max_connections
     nchanges = 0;
     nevents = 512;
 
-    if ((kq = kqueue()) == -1)
+    if ((kq = kqueue()) == -1) {
         ngx_log_error(NGX_LOG_EMERG, log, ngx_errno,
-                      "ngx_kqueue_init: kqueue failed");
+                      "kqueue() failed");
+        exit(1);
+    }
 
     change_list = ngx_alloc(size, log);
     event_list = ngx_alloc(size, log);
@@ -56,7 +58,7 @@ void ngx_kqueue_init(int max_connections
 int ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags)
 {
     if (event == NGX_TIMER_EVENT) {
-        ngx_add_timer(ev, flags);
+        ngx_add_timer_core(ev, flags);
         return 0;
     }
 
@@ -154,8 +156,14 @@ int ngx_kqueue_process_events(ngx_log_t 
                 delta -= ev->timer_delta;
                 nx = ev->timer_next;
                 ngx_del_timer(ev);
+#if 1
+                ev->timedout = 1;
+                if (ev->event_handler(ev) == -1)
+                    ev->close_handler(ev);
+#else
                 if (ev->timer_handler(ev) == -1)
                     ev->close_handler(ev);
+#endif
                 ev = nx;
             }
 
@@ -207,7 +215,7 @@ int ngx_kqueue_process_events(ngx_log_t 
     return 0;
 }
 
-static void ngx_add_timer(ngx_event_t *ev, u_int timer)
+static void ngx_add_timer_core(ngx_event_t *ev, u_int timer)
 {
     ngx_event_t *e;