diff --git a/source/util/src/mpDirect.c b/source/util/src/mpDirect.c index acc1bc8dd0..c6839b721e 100755 --- a/source/util/src/mpDirect.c +++ b/source/util/src/mpDirect.c @@ -41,9 +41,8 @@ void* mpDirectCalloc(SMemPool* pPool, SMPJob* pJob, int64_t num, int64_t size) { } void mpDirectFree(SMemPool* pPool, SMPJob* pJob, void *ptr) { - taosMemFree(ptr); - (void)atomic_sub_fetch_64(&pJob->job.allocMemSize, taosMemSize(ptr)); + taosMemFree(ptr); } diff --git a/source/util/src/tmempool.c b/source/util/src/tmempool.c index e69245700d..29e6a6f20c 100644 --- a/source/util/src/tmempool.c +++ b/source/util/src/tmempool.c @@ -1730,7 +1730,7 @@ int32_t taosMemoryPoolInit(mpReserveFailFp failFp, mpReserveReachFp reachFp) { void taosAutoMemoryFree(void *ptr) { - if (NULL != gMemPoolHandle) { + if (NULL != gMemPoolHandle && threadPoolEnabled && threadPoolSession) { taosMemPoolFree(gMemPoolHandle, threadPoolSession, ptr, __FILE__, __LINE__); } else { taosMemFree(ptr);