fix invalid free while taosd quit
This commit is contained in:
parent
ab093d80bd
commit
c0a394876d
|
@ -1944,8 +1944,9 @@ static FORCE_INLINE void destroyCmsgWrapper(void* arg, void* param) {
|
||||||
if (pMsg == NULL) {
|
if (pMsg == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (param != NULL) {
|
|
||||||
SCliThrd* pThrd = param;
|
SCliThrd* pThrd = param;
|
||||||
|
if (pMsg->msg.info.notFreeAhandle == 0 && pThrd != NULL) {
|
||||||
if (pThrd->destroyAhandleFp) (*pThrd->destroyAhandleFp)(pMsg->msg.info.ahandle);
|
if (pThrd->destroyAhandleFp) (*pThrd->destroyAhandleFp)(pMsg->msg.info.ahandle);
|
||||||
}
|
}
|
||||||
destroyCmsg(pMsg);
|
destroyCmsg(pMsg);
|
||||||
|
@ -1957,12 +1958,9 @@ static FORCE_INLINE void destroyCmsgAndAhandle(void* param) {
|
||||||
SCliMsg* pMsg = arg->param1;
|
SCliMsg* pMsg = arg->param1;
|
||||||
SCliThrd* pThrd = arg->param2;
|
SCliThrd* pThrd = arg->param2;
|
||||||
|
|
||||||
tDebug("destroy Ahandle A");
|
if (pMsg->msg.info.notFreeAhandle == 0 && pThrd != NULL && pThrd->destroyAhandleFp != NULL) {
|
||||||
if (pThrd != NULL && pThrd->destroyAhandleFp != NULL) {
|
|
||||||
tDebug("destroy Ahandle B");
|
|
||||||
pThrd->destroyAhandleFp(pMsg->ctx->ahandle);
|
pThrd->destroyAhandleFp(pMsg->ctx->ahandle);
|
||||||
}
|
}
|
||||||
tDebug("destroy Ahandle C");
|
|
||||||
|
|
||||||
transDestroyConnCtx(pMsg->ctx);
|
transDestroyConnCtx(pMsg->ctx);
|
||||||
transFreeMsg(pMsg->msg.pCont);
|
transFreeMsg(pMsg->msg.pCont);
|
||||||
|
|
Loading…
Reference in New Issue