From 3d31fc3bee6709dc272fe6b0c8aca9a9907f7f64 Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 27 Mar 2025 08:11:13 +0100 Subject: [PATCH] VSIM thread: manipulate results while still locked. --- vset.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vset.c b/vset.c index 33ffb8b32..68933c3e7 100644 --- a/vset.c +++ b/vset.c @@ -706,8 +706,6 @@ void VSIM_execute(RedisModuleCtx *ctx, struct vsetObject *vset, filter_expr, filter_ef); } } - hnsw_release_read_slot(vset->hnsw,slot); - RedisModule_Free(vec); /* Return results */ if (withscores) @@ -726,12 +724,14 @@ void VSIM_execute(RedisModuleCtx *ctx, struct vsetObject *vset, RedisModule_ReplyWithDouble(ctx, 1.0 - distances[i]/2.0); } } + hnsw_release_read_slot(vset->hnsw,slot); if (withscores) RedisModule_ReplySetMapLength(ctx, arraylen); else RedisModule_ReplySetArrayLength(ctx, arraylen); + RedisModule_Free(vec); RedisModule_Free(neighbors); RedisModule_Free(distances); if (filter_expr) exprFree(filter_expr);