nginx-0.0.1-2003-11-11-00:09:22 import
diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c
index d652ac2..9bc7434 100644
--- a/src/event/modules/ngx_devpoll_module.c
+++ b/src/event/modules/ngx_devpoll_module.c
@@ -366,8 +366,14 @@
 
     nchanges = 0;
 
+    gettimeofday(&tv, NULL);
+
+    if (ngx_cached_time != tv.tv_sec) {
+        ngx_cached_time = tv.tv_sec;
+        ngx_time_update();
+    }
+
     if ((int) timer != INFTIM) {
-        gettimeofday(&tv, NULL);
         delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta;
 
 #if (NGX_DEBUG_EVENT)
diff --git a/src/event/modules/ngx_iocp_module.c b/src/event/modules/ngx_iocp_module.c
index 86d763b..0a5ac5b 100644
--- a/src/event/modules/ngx_iocp_module.c
+++ b/src/event/modules/ngx_iocp_module.c
@@ -189,6 +189,8 @@
         err = 0;
     }
 
+    /* TODO: timer */
+
     if (timer != INFINITE) {
         delta = ngx_msec() - delta;
         ngx_event_expire_timers(delta);
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index c896a83..831bc77 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2002-2003 Igor Sysoev, http://sysoev.ru
+ * Copyright (C) 2002-2003 Igor Sysoev, http://sysoev.ru/en/
  */
 
 
@@ -347,16 +347,24 @@
 
     nchanges = 0;
 
+    gettimeofday(&tv, NULL);
+
+    if (ngx_cached_time != tv.tv_sec) {
+        ngx_cached_time = tv.tv_sec;
+        ngx_time_update();
+    }
+
     if (timer) {
-        gettimeofday(&tv, NULL);
         delta = tv.tv_sec * 1000 + tv.tv_usec / 1000 - delta;
 
 #if (NGX_DEBUG_EVENT)
         ngx_log_debug(log, "kevent timer: %d, delta: %d" _ timer _ delta);
 #endif
 
-        /* The expired timers must be handled before a processing of the events
-           because the new timers can be added during a processing */
+        /*
+         * The expired timers must be handled before a processing of the events
+         * because the new timers can be added during a processing
+         */
 
         ngx_event_expire_timers(delta);
 
@@ -413,8 +421,10 @@
             instance = (uintptr_t) ev & 1;
             ev = (void *) ((uintptr_t) ev & ~1);
 
-            /* It's a stale event from a file descriptor
-               that was just closed in this iteration */
+            /*
+             * it's a stale event from a file descriptor
+             * that was just closed in this iteration
+             */
 
             if (ev->active == 0 || ev->instance != instance) {
                 ngx_log_debug(log, "stale kevent");
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index 9d2f8ac..34f2b11 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -259,6 +259,8 @@
 
     ngx_log_debug(log, "poll ready %d" _ ready);
 
+    /* TODO: time */
+
     if ((int) timer != INFTIM) {
         delta = ngx_msec() - delta;
 
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index 7924766..082c0e3 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -314,6 +314,8 @@
     ngx_log_debug(log, "select ready %d" _ ready);
 #endif
 
+    /* TODO: time */
+
     if (timer) {
 #if (HAVE_SELECT_CHANGE_TIMEOUT)
         delta = timer - (tv.tv_sec * 1000 + tv.tv_usec / 1000);