diff --git a/src/cache.c b/src/cache.c index 7de527498..d311f8f44 100644 --- a/src/cache.c +++ b/src/cache.c @@ -2671,7 +2671,7 @@ static int cli_io_handler_show_cache(struct appctx *appctx) ctx->cache = cache; - cache_wrlock(cache); + cache_rdlock(cache); while (1) { node = eb32_lookup_ge(&cache->entries, next_key); @@ -2690,21 +2690,17 @@ static int cli_io_handler_show_cache(struct appctx *appctx) chunk_appendf(&trash, " size:%u (%u blocks), refcount:%u, expire:%d\n", block_ptr(entry)->len, block_ptr(entry)->block_count, block_ptr(entry)->refcount, entry->expire - (int)date.tv_sec); - } else { - /* time to remove that one */ - delete_entry(entry); - entry->eb.key = 0; } ctx->next_key = next_key; if (applet_putchk(appctx, &trash) == -1) { - cache_wrunlock(cache); + cache_rdunlock(cache); return 0; } } - cache_wrunlock(cache); + cache_rdunlock(cache); }