From 7546cd7c568bf31c93bb8284e9d67eb023346e25 Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Wed, 14 Sep 2022 17:56:58 +0800 Subject: [PATCH] enh: tsem_init rspSem of SSqlObj in tscAllocSqlObj instead --- src/client/src/tscDelete.c | 1 - src/client/src/tscParseLineProtocol.c | 1 - src/client/src/tscPrepare.c | 1 - src/client/src/tscSql.c | 7 ------- src/client/src/tscStream.c | 1 - src/client/src/tscSub.c | 9 --------- src/client/src/tscUtil.c | 9 ++++----- 7 files changed, 4 insertions(+), 25 deletions(-) diff --git a/src/client/src/tscDelete.c b/src/client/src/tscDelete.c index ea19197554..36b7b2139a 100644 --- a/src/client/src/tscDelete.c +++ b/src/client/src/tscDelete.c @@ -153,7 +153,6 @@ SSqlObj *tscCreateSTableSubDelete(SSqlObj *pSql, SVgroupMsg* pVgroupMsg, SRetrie // update vgroup id writeMsgVgId(pNewCmd->payload ,pVgroupMsg->vgId); - tsem_init(&pNew->rspSem, 0, 0); registerSqlObj(pNew); tscDebug("0x%"PRIx64":CDEL new sub insertion: %p", pSql->self, pNew); diff --git a/src/client/src/tscParseLineProtocol.c b/src/client/src/tscParseLineProtocol.c index 357620d20c..c1bdbce91d 100644 --- a/src/client/src/tscParseLineProtocol.c +++ b/src/client/src/tscParseLineProtocol.c @@ -2771,7 +2771,6 @@ static SSqlObj* createSmlQueryObj(TAOS* taos, int32_t affected_rows, int32_t cod pNew->pTscObj = taos; pNew->fp = NULL; - tsem_init(&pNew->rspSem, 0, 0); registerSqlObj(pNew); pNew->res.numOfRows = affected_rows; diff --git a/src/client/src/tscPrepare.c b/src/client/src/tscPrepare.c index b12027107a..3f94cdc64a 100644 --- a/src/client/src/tscPrepare.c +++ b/src/client/src/tscPrepare.c @@ -1604,7 +1604,6 @@ TAOS_STMT* taos_stmt_init(TAOS* taos) { return NULL; } - tsem_init(&pSql->rspSem, 0, 0); pSql->signature = pSql; pSql->pTscObj = pObj; pSql->maxRetry = TSDB_MAX_REPLICA; diff --git a/src/client/src/tscSql.c b/src/client/src/tscSql.c index fe46c6bf78..901d1788c9 100644 --- a/src/client/src/tscSql.c +++ b/src/client/src/tscSql.c @@ -164,8 +164,6 @@ static SSqlObj *taosConnectImpl(const char *ip, const char *user, const char *pa pSql->param = param; pSql->cmd.command = TSDB_SQL_CONNECT; - tsem_init(&pSql->rspSem, 0, 0); - if (TSDB_CODE_SUCCESS != tscAllocPayload(&pSql->cmd, TSDB_DEFAULT_PAYLOAD_SIZE)) { terrno = TSDB_CODE_TSC_OUT_OF_MEMORY; tscReleaseRpc(pRpcObj); @@ -305,10 +303,6 @@ void taos_close(TAOS *taos) { tscDebug("0x%"PRIx64" HB is freed", pHb->self); taosReleaseRef(tscObjRef, pHb->self); -#ifdef __APPLE__ - // to satisfy later tsem_destroy in taos_free_result - tsem_init(&pHb->rspSem, 0, 0); -#endif // __APPLE__ taos_free_result(pHb); } } @@ -370,7 +364,6 @@ TAOS_RES* taos_query_c(TAOS *taos, const char *sqlstr, uint32_t sqlLen, int64_t* return NULL; } - tsem_init(&pSql->rspSem, 0, 0); doAsyncQuery(pObj, pSql, waitForQueryRsp, taos, sqlstr, sqlLen); if (res != NULL) { diff --git a/src/client/src/tscStream.c b/src/client/src/tscStream.c index ab3e380d46..7ea24ce829 100644 --- a/src/client/src/tscStream.c +++ b/src/client/src/tscStream.c @@ -1054,7 +1054,6 @@ TAOS_STREAM *taos_open_stream_withname(TAOS *taos, const char* dstTable, int32_t pSql->fetchFp = tscCreateStream; pSql->cmd.resColumnId = TSDB_RES_COL_ID; - tsem_init(&pSql->rspSem, 0, 0); registerSqlObj(pSql); tscDebugL("0x%"PRIx64" SQL: %s", pSql->self, pSql->sqlstr); diff --git a/src/client/src/tscSub.c b/src/client/src/tscSub.c index 57189b80e0..c7d4d3c00a 100644 --- a/src/client/src/tscSub.c +++ b/src/client/src/tscSub.c @@ -132,11 +132,6 @@ static SSub* tscCreateSubscription(STscObj* pObj, const char* topic, const char* SSqlCmd* pCmd = &pSql->cmd; SSqlRes* pRes = &pSql->res; - if (tsem_init(&pSql->rspSem, 0, 0) == -1) { - line = __LINE__; - code = TAOS_SYSTEM_ERROR(errno); - goto fail; - } pSql->param = pSub; pSql->maxRetry = TSDB_MAX_REPLICA; @@ -442,10 +437,6 @@ SSqlObj* recreateSqlObj(SSub* pSub) { SSqlCmd* pCmd = &pSql->cmd; SSqlRes* pRes = &pSql->res; - if (tsem_init(&pSql->rspSem, 0, 0) == -1) { - tscFreeSqlObj(pSql); - return NULL; - } pSql->param = pSub; pSql->maxRetry = TSDB_MAX_REPLICA; diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index b810598334..b9cd1e5b6d 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -1743,7 +1743,10 @@ SSqlObj* tscAllocSqlObj() { if (!pNew) { return NULL; } - pthread_mutex_init(&pNew->subState.mutex, NULL); + int rc = tsem_init(&pNew->rspSem, 0, 0); + assert(rc == 0 && "tsem_init failure"); + rc = pthread_mutex_init(&pNew->subState.mutex, NULL); + assert(rc == 0 && "pthread_mutex_init failure"); return pNew; } @@ -3798,7 +3801,6 @@ SSqlObj* createSimpleSubObj(SSqlObj* pSql, __async_cb_func_t fp, void* param, in SSqlCmd* pCmd = &pNew->cmd; pCmd->command = cmd; - tsem_init(&pNew->rspSem, 0 ,0); if (tscAddQueryInfo(pCmd) != TSDB_CODE_SUCCESS) { tscFreeSqlObj(pNew); @@ -3877,7 +3879,6 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t pNew->signature = pNew; pNew->sqlstr = strdup(pSql->sqlstr); pNew->rootObj = pSql->rootObj; - tsem_init(&pNew->rspSem, 0, 0); SSqlCmd* pnCmd = &pNew->cmd; memcpy(pnCmd, pCmd, sizeof(SSqlCmd)); @@ -4281,8 +4282,6 @@ void executeQuery(SSqlObj* pSql, SQueryInfo* pQueryInfo) { pNew->cmd.resColumnId = TSDB_RES_COL_ID; - tsem_init(&pNew->rspSem, 0, 0); - SRetrieveSupport* ps = calloc(1, sizeof(SRetrieveSupport)); // todo use object id if (ps == NULL) { tscFreeSqlObj(pNew); -- GitLab