# HG changeset patch # User Igor Sysoev # Date 1165415120 0 # Node ID 8a3ba663be1af590fa9820d5fd0e91d87b3fc330 # Parent 6356b34cf0276b66759431b29a424e50b9d9cf45 slot number must be incremented once per second only, ngx_time_update() set msec in an wrong slot diff --git a/src/core/ngx_times.c b/src/core/ngx_times.c --- 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);