summaryrefslogtreecommitdiffstats
path: root/database/engine/rrdenglocking.c
diff options
context:
space:
mode:
Diffstat (limited to 'database/engine/rrdenglocking.c')
-rw-r--r--database/engine/rrdenglocking.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/database/engine/rrdenglocking.c b/database/engine/rrdenglocking.c
index 60a3499693..0eb9019b47 100644
--- a/database/engine/rrdenglocking.c
+++ b/database/engine/rrdenglocking.c
@@ -22,7 +22,7 @@ void rrdeng_destroy_pg_cache_descr(struct rrdengine_instance *ctx, struct page_c
{
uv_cond_destroy(&pg_cache_descr->cond);
uv_mutex_destroy(&pg_cache_descr->mutex);
- free(pg_cache_descr);
+ freez(pg_cache_descr);
rrd_stat_atomic_add(&ctx->stats.page_cache_descriptors, -1);
}
@@ -102,7 +102,6 @@ void rrdeng_page_descr_mutex_unlock(struct rrdengine_instance *ctx, struct rrden
we_locked = 0;
while (1) { /* spin */
old_state = descr->pg_cache_descr_state;
- assert(old_state & PG_CACHE_DESCR_ALLOCATED);
old_users = old_state >> PG_CACHE_DESCR_SHIFT;
if (unlikely(we_locked)) {
@@ -119,6 +118,7 @@ void rrdeng_page_descr_mutex_unlock(struct rrdengine_instance *ctx, struct rrden
assert(0 == old_users);
continue; /* spin */
}
+ assert(old_state & PG_CACHE_DESCR_ALLOCATED);
pg_cache_descr = descr->pg_cache_descr;
/* caller is the only page cache descriptor user and there are no pending references on the page */
if ((old_state & PG_CACHE_DESCR_DESTROY) && (1 == old_users) &&