summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2013-08-06 12:59:04 +0200
committerantirez <antirez@gmail.com>2013-08-06 15:36:39 +0200
commit31d0f341000fc18b81717607ba82496ca285fb80 (patch)
tree6103984484a383ac67d8f5d387151814c735e2c9
parent00c8cfef74a5a2954f3f44078f8f08f458c9ce76 (diff)
downloadredis-31d0f341000fc18b81717607ba82496ca285fb80.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 85b5a44ff..1f1f43ae5 100644
--- a/src/redis.c
+++ b/src/redis.c
@@ -695,7 +695,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;
}