summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2013-08-06 12:59:04 +0200
committerantirez <antirez@gmail.com>2013-08-06 12:59:04 +0200
commit4befe73b60f7e02dd304ea0c19febce8fea0bd13 (patch)
tree82efbe709cf76fd88329a18625357f077057a726
parent6500fabfb881a7ffaadfbff74ab801c55d4591fc (diff)
downloadredis-4befe73b60f7e02dd304ea0c19febce8fea0bd13.tar.gz
activeExpireCycle(): fix about fast cycle early start.
We don't want to repeat a fast cycle too soon, the previous code was broken, we need to wait two times the period *since* the start of the previous cycle in order to avoid there is an even space between cycles: .-> start .-> second start | | +-------------+-------------+--------------+ | first cycle | pause | second cycle | +-------------+-------------+--------------+ The second and first start must be PERIOD*2 useconds apart hence the *2 in the new code.
-rw-r--r--src/redis.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/redis.c b/src/redis.c
index d1dde4d1e..c1f1d6642 100644
--- a/src/redis.c
+++ b/src/redis.c
@@ -721,7 +721,7 @@ void activeExpireCycle(int type) {
* for time limt. Also don't repeat a fast cycle for the same period
* as the fast cycle total duration itself. */
if (!timelimit_exit) return;
- if (start < last_fast_cycle + ACTIVE_EXPIRE_CYCLE_FAST_DURATION) return;
+ if (start < last_fast_cycle + ACTIVE_EXPIRE_CYCLE_FAST_DURATION*2) return;
last_fast_cycle = start;
}