提交 c34cfa46 编写于 作者: D dapan1121

fix bug

上级 39acac5c
...@@ -284,16 +284,18 @@ void taos_close(TAOS *taos) { ...@@ -284,16 +284,18 @@ void taos_close(TAOS *taos) {
return; return;
} }
SSqlObj* pHb = (SSqlObj*)taosAcquireRef(tscObjRef, pObj->hbrid); if (RID_VALID(pObj->hbrid)) {
if (pHb != NULL) { SSqlObj* pHb = (SSqlObj*)taosAcquireRef(tscObjRef, pObj->hbrid);
if (pHb->rpcRid > 0) { // wait for rsp from dnode if (pHb != NULL) {
rpcCancelRequest(pHb->rpcRid); if (RID_VALID(pHb->rpcRid)) { // wait for rsp from dnode
pHb->rpcRid = -1; rpcCancelRequest(pHb->rpcRid);
} pHb->rpcRid = -1;
}
tscDebug("%p HB is freed", pHb); tscDebug("%p HB is freed", pHb);
taosReleaseRef(tscObjRef, pHb->self); taosReleaseRef(tscObjRef, pHb->self);
taos_free_result(pHb); taos_free_result(pHb);
}
} }
tscDebug("%p all sqlObj are freed, free tscObj and close dnodeConn:%p", pObj, pObj->pDnodeConn); tscDebug("%p all sqlObj are freed, free tscObj and close dnodeConn:%p", pObj, pObj->pDnodeConn);
......
...@@ -52,6 +52,8 @@ void *taosIterateRef(int rsetId, int64_t rid); ...@@ -52,6 +52,8 @@ void *taosIterateRef(int rsetId, int64_t rid);
// return the number of references in system // return the number of references in system
int taosListRef(); int taosListRef();
#define RID_VALID(x) ((x) > 0)
/* sample code to iterate the refs /* sample code to iterate the refs
void demoIterateRefs(int rsetId) { void demoIterateRefs(int rsetId) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册