return;
}
+ MCTXLOCK(ctx, &ctx->lock);
+
+ DELETE_TRACE(ctx, ptr, size, file, line);
+
if ((ctx->flags & ISC_MEMFLAG_INTERNAL) != 0) {
- MCTXLOCK(ctx, &ctx->lock);
mem_putunlocked(ctx, ptr, size);
} else {
- mem_put(ctx, ptr, size);
- MCTXLOCK(ctx, &ctx->lock);
mem_putstats(ctx, ptr, size);
+ mem_put(ctx, ptr, size);
}
- DELETE_TRACE(ctx, ptr, size, file, line);
INSIST(ctx->references > 0);
ctx->references--;
if (ctx->references == 0)
return;
}
+ MCTXLOCK(ctx, &ctx->lock);
+
+ DELETE_TRACE(ctx, ptr, size, file, line);
+
if ((ctx->flags & ISC_MEMFLAG_INTERNAL) != 0) {
- MCTXLOCK(ctx, &ctx->lock);
mem_putunlocked(ctx, ptr, size);
} else {
- mem_put(ctx, ptr, size);
- MCTXLOCK(ctx, &ctx->lock);
mem_putstats(ctx, ptr, size);
+ mem_put(ctx, ptr, size);
}
- DELETE_TRACE(ctx, ptr, size, file, line);
-
/*
* The check against ctx->lo_water == 0 is for the condition
* when the context was pushed over hi_water but then had
size = si->u.size;
}
+ MCTXLOCK(ctx, &ctx->lock);
+
+ DELETE_TRACE(ctx, ptr, size, file, line);
+
if ((ctx->flags & ISC_MEMFLAG_INTERNAL) != 0) {
- MCTXLOCK(ctx, &ctx->lock);
mem_putunlocked(ctx, si, size);
} else {
- mem_put(ctx, si, size);
- MCTXLOCK(ctx, &ctx->lock);
mem_putstats(ctx, si, size);
+ mem_put(ctx, si, size);
}
- DELETE_TRACE(ctx, ptr, size, file, line);
-
/*
* The check against ctx->lo_water == 0 is for the condition
* when the context was pushed over hi_water but then had
if ((mctx->flags & ISC_MEMFLAG_INTERNAL) != 0) {
mem_putunlocked(mctx, item, mpctx->size);
} else {
- mem_put(mctx, item, mpctx->size);
mem_putstats(mctx, item, mpctx->size);
+ mem_put(mctx, item, mpctx->size);
}
}
MCTXUNLOCK(mctx, &mctx->lock);
* If our free list is full, return this to the mctx directly.
*/
if (mpctx->freecount >= mpctx->freemax) {
+ MCTXLOCK(mctx, &mctx->lock);
if ((mctx->flags & ISC_MEMFLAG_INTERNAL) != 0) {
- MCTXLOCK(mctx, &mctx->lock);
mem_putunlocked(mctx, mem, mpctx->size);
- MCTXUNLOCK(mctx, &mctx->lock);
} else {
- mem_put(mctx, mem, mpctx->size);
- MCTXLOCK(mctx, &mctx->lock);
mem_putstats(mctx, mem, mpctx->size);
- MCTXUNLOCK(mctx, &mctx->lock);
+ mem_put(mctx, mem, mpctx->size);
}
+ MCTXUNLOCK(mctx, &mctx->lock);
if (mpctx->lock != NULL)
UNLOCK(mpctx->lock);
return;