diff --git a/source/client/src/clientImpl.c b/source/client/src/clientImpl.c index c78ba4c4a0..478f5bfaef 100644 --- a/source/client/src/clientImpl.c +++ b/source/client/src/clientImpl.c @@ -2553,6 +2553,14 @@ static void fetchCallback(void* pResult, void* param, int32_t code) { } void taosAsyncFetchImpl(SRequestObj* pRequest, __taos_async_fn_t fp, void* param) { + if (pRequest->syncQuery && pRequest->body.param != param) { + if (pRequest->body.param) { + tsem_destroy(&((SSyncQueryParam *)pRequest->body.param)->sem); + } + taosMemoryFree(pRequest->body.param); + pRequest->syncQuery = false; + } + pRequest->body.fetchFp = fp; pRequest->body.param = param;