changeset 891:8a3ba663be1a

slot number must be incremented once per second only, ngx_time_update() set msec in an wrong slot
author Igor Sysoev <igor@sysoev.ru>
date Wed, 06 Dec 2006 14:25:20 +0000
parents 6356b34cf027
children b579676ec6b2
files src/core/ngx_times.c
diffstat 1 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/ngx_times.c
+++ b/src/core/ngx_times.c
@@ -70,12 +70,6 @@ ngx_time_update(time_t sec, ngx_uint_t m
         return;
     }
 
-    if (slot == NGX_TIME_SLOTS) {
-        slot = 0;
-    } else {
-        slot++;
-    }
-
     if (sec == 0) {
         ngx_gettimeofday(&tv);
 
@@ -87,14 +81,22 @@ ngx_time_update(time_t sec, ngx_uint_t m
 
     tp = &cached_time[slot];
 
-    tp->msec = msec;
-
     if (tp->sec == sec) {
+        tp->msec = msec;
         ngx_unlock(&ngx_time_lock);
         return;
     }
 
+    if (slot == NGX_TIME_SLOTS) {
+        slot = 0;
+    } else {
+        slot++;
+    }
+
+    tp = &cached_time[slot];
+
     tp->sec = sec;
+    tp->msec = msec;
 
     ngx_gmtime(sec, &gmt);