diff --git a/src/client/src/tscProfile.c b/src/client/src/tscProfile.c index c682138a354c312815060838120113e0f0f47004..bfc3b9f0be1cedfe1e7c3d66f1fa3ab16f5d37f3 100644 --- a/src/client/src/tscProfile.c +++ b/src/client/src/tscProfile.c @@ -280,7 +280,7 @@ int tscBuildQueryStreamDesc(void *pMsg, STscObj *pObj) { // } else { // pQdesc->stableQuery = 0; // } - + pthread_mutex_lock(&pSql->subState.mutex); if (pSql->pSubs != NULL && pSql->subState.states != NULL) { for (int32_t i = 0; i < pQdesc->numOfSub; ++i) { SSqlObj *psub = pSql->pSubs[i]; @@ -295,6 +295,7 @@ int tscBuildQueryStreamDesc(void *pMsg, STscObj *pObj) { p += len; } } + pthread_mutex_unlock(&pSql->subState.mutex); } pQdesc->numOfSub = htonl(pQdesc->numOfSub); diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index cdea2cf74820a1adf77536b0a6a275f5f75a0f0d..1fd5806c79f215b6b979fe523c55c8b3cda63900 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -4518,6 +4518,7 @@ void tscTryQueryNextClause(SSqlObj* pSql, __async_cb_func_t fp) { pRes->final = finalBk; pRes->numOfTotal = num; + pthread_mutex_lock(&pSql->subState.mutex); for(int32_t i = 0; i < pSql->subState.numOfSub; ++i) { taos_free_result(pSql->pSubs[i]); } @@ -4525,6 +4526,7 @@ void tscTryQueryNextClause(SSqlObj* pSql, __async_cb_func_t fp) { tfree(pSql->pSubs); tfree(pSql->subState.states); pSql->subState.numOfSub = 0; + pthread_mutex_unlock(&pSql->subState.mutex); pthread_mutex_destroy(&pSql->subState.mutex); pSql->fp = fp;