fix the deadlock bug for rpcCloseConn
This commit is contained in:
parent
a7040bed89
commit
931474ff6e
|
@ -287,7 +287,7 @@ void rpcClose(void *param) {
|
|||
(*taosCleanUpConn[pRpc->connType])(pRpc->udphandle);
|
||||
|
||||
for (int i = 0; i < pRpc->sessions; ++i) {
|
||||
if (pRpc->connList[i].user[0]) {
|
||||
if (pRpc->connList && pRpc->connList[i].user[0]) {
|
||||
rpcCloseConn((void *)(pRpc->connList + i));
|
||||
}
|
||||
}
|
||||
|
@ -495,9 +495,10 @@ static void rpcCloseConn(void *thandle) {
|
|||
SRpcConn *pConn = (SRpcConn *)thandle;
|
||||
SRpcInfo *pRpc = pConn->pRpc;
|
||||
|
||||
if (pConn->user[0] == 0) return;
|
||||
|
||||
rpcLockConn(pConn);
|
||||
|
||||
if (pConn->user[0]) {
|
||||
pConn->user[0] = 0;
|
||||
if (taosCloseConn[pConn->connType]) (*taosCloseConn[pConn->connType])(pConn->chandle);
|
||||
|
||||
|
@ -522,7 +523,6 @@ static void rpcCloseConn(void *thandle) {
|
|||
pConn->pContext = NULL;
|
||||
|
||||
tTrace("%s %p, rpc connection is closed", pRpc->label, pConn);
|
||||
}
|
||||
|
||||
rpcUnlockConn(pConn);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue