]> git.kaiwu.me - nginx.git/commitdiff
slot number must be incremented once per second only,
authorIgor Sysoev <igor@sysoev.ru>
Wed, 6 Dec 2006 14:25:20 +0000 (14:25 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 6 Dec 2006 14:25:20 +0000 (14:25 +0000)
ngx_time_update() set msec in an wrong slot

src/core/ngx_times.c

index 88a9e98c9198a05913dc98e17cea20cd3f153060..f6e618a6578784ba21660ea906ace5417cefa190 100644 (file)
@@ -70,12 +70,6 @@ ngx_time_update(time_t sec, ngx_uint_t msec)
         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 msec)
 
     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);