summaryrefslogtreecommitdiff
path: root/src/evict.c
diff options
context:
space:
mode:
authorOran Agra <oran@redislabs.com>2019-10-06 13:55:21 +0300
committerOran Agra <oran@redislabs.com>2019-10-07 09:09:32 +0300
commitd1a005ab3963c16b65e805675a76f0e40c723158 (patch)
treef923f84ec380a9e91f7e83972de5f825418cfb55 /src/evict.c
parentbd6044706641fa6370a90dc5347e6cd37f5930eb (diff)
downloadredis-d1a005ab3963c16b65e805675a76f0e40c723158.tar.gz
fix issues found by a static analyzer
cluster.c - stack buffer memory alignment The pointer 'buf' is cast to a more strictly aligned pointer type evict.c - lazyfree_lazy_eviction, lazyfree_lazy_eviction always called defrag.c - bug in dead code server.c - casting was missing parenthesis rax.c - indentation / newline suggested an 'else if' was intended
Diffstat (limited to 'src/evict.c')
-rw-r--r--src/evict.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/evict.c b/src/evict.c
index 176f4c362..71260c040 100644
--- a/src/evict.c
+++ b/src/evict.c
@@ -444,6 +444,7 @@ int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, float *lev
* Otehrwise if we are over the memory limit, but not enough memory
* was freed to return back under the limit, the function returns C_ERR. */
int freeMemoryIfNeeded(void) {
+ int keys_freed = 0;
/* By default replicas should ignore maxmemory
* and just be masters exact copies. */
if (server.masterhost && server.repl_slave_ignore_maxmemory) return C_OK;
@@ -467,7 +468,7 @@ int freeMemoryIfNeeded(void) {
latencyStartMonitor(latency);
while (mem_freed < mem_tofree) {
- int j, k, i, keys_freed = 0;
+ int j, k, i;
static unsigned int next_db = 0;
sds bestkey = NULL;
int bestdbid;
@@ -598,9 +599,7 @@ int freeMemoryIfNeeded(void) {
mem_freed = mem_tofree;
}
}
- }
-
- if (!keys_freed) {
+ } else {
latencyEndMonitor(latency);
latencyAddSampleIfNeeded("eviction-cycle",latency);
goto cant_free; /* nothing to free... */