handle except
This commit is contained in:
parent
4cd1d75a41
commit
3cbce27a9f
|
@ -193,7 +193,7 @@ static void destroyThrdObj(SCliThrdObj* pThrd);
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define CONN_NO_PERSIST_BY_APP(conn) ((conn)->status == ConnNormal && T_REF_VAL_GET(conn) == 1)
|
#define CONN_NO_PERSIST_BY_APP(conn) ((conn)->status == ConnNormal && T_REF_VAL_GET(conn) == 1)
|
||||||
|
#define CONN_RELEASE_BY_SERVER(conn) ((conn)->status == ConnRelease && T_REF_VAL_GET(conn) == 1)
|
||||||
#define REQUEST_NO_RESP(msg) ((msg)->noResp == 1)
|
#define REQUEST_NO_RESP(msg) ((msg)->noResp == 1)
|
||||||
#define REQUEST_PERSIS_HANDLE(msg) ((msg)->persistHandle == 1)
|
#define REQUEST_PERSIS_HANDLE(msg) ((msg)->persistHandle == 1)
|
||||||
#define REQUEST_RELEASE_HANDLE(cmsg) ((cmsg)->type == Release)
|
#define REQUEST_RELEASE_HANDLE(cmsg) ((cmsg)->type == Release)
|
||||||
|
@ -255,9 +255,9 @@ void cliHandleResp(SCliConn* conn) {
|
||||||
if (pMsg == NULL) {
|
if (pMsg == NULL) {
|
||||||
transMsg.ahandle = transCtxDumpVal(&conn->ctx, transMsg.msgType);
|
transMsg.ahandle = transCtxDumpVal(&conn->ctx, transMsg.msgType);
|
||||||
tDebug("cli conn %p construct ahandle %p by %d, persist: 1", conn, transMsg.ahandle, transMsg.msgType);
|
tDebug("cli conn %p construct ahandle %p by %d, persist: 1", conn, transMsg.ahandle, transMsg.msgType);
|
||||||
if (transMsg.ahandle == NULL) {
|
if (!CONN_RELEASE_BY_SERVER(conn)&& transMsg.ahandle = NULL) {
|
||||||
tDebug("cli conn %p construct ahandle %p due brokenlink, persist: 1", conn, transMsg.ahandle);
|
|
||||||
transMsg.ahandle = transCtxDumpBrokenlinkVal(&conn->ctx, (int32_t*)&(transMsg.msgType));
|
transMsg.ahandle = transCtxDumpBrokenlinkVal(&conn->ctx, (int32_t*)&(transMsg.msgType));
|
||||||
|
tDebug("cli conn %p construct ahandle %p due brokenlink, persist: 1", conn, transMsg.ahandle);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pCtx = pMsg ? pMsg->ctx : NULL;
|
pCtx = pMsg ? pMsg->ctx : NULL;
|
||||||
|
@ -284,6 +284,11 @@ void cliHandleResp(SCliConn* conn) {
|
||||||
// transUnrefCliHandle(conn);
|
// transUnrefCliHandle(conn);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (CONN_RELEASE_BY_SERVER(conn) && transMsg.ahandle == NULL) {
|
||||||
|
tTrace("except, server continue send while cli ignore it");
|
||||||
|
// transUnrefCliHandle(conn);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (pCtx == NULL || pCtx->pSem == NULL) {
|
if (pCtx == NULL || pCtx->pSem == NULL) {
|
||||||
tTrace("%s cli conn %p handle resp", pTransInst->label, conn);
|
tTrace("%s cli conn %p handle resp", pTransInst->label, conn);
|
||||||
|
|
Loading…
Reference in New Issue