fix/TS-5532-set-seperate-thread-update-status-fix-review
This commit is contained in:
parent
66dbc6c161
commit
1d0de625f4
|
@ -165,11 +165,16 @@ void dmSendStatusReq(SDnodeMgmt *pMgmt) {
|
||||||
(void)taosThreadRwlockUnlock(&pMgmt->pData->lock);
|
(void)taosThreadRwlockUnlock(&pMgmt->pData->lock);
|
||||||
|
|
||||||
dDebug("send status req to mnode, statusSeq:%d, begin to get vnode loads", pMgmt->statusSeq);
|
dDebug("send status req to mnode, statusSeq:%d, begin to get vnode loads", pMgmt->statusSeq);
|
||||||
(void)taosThreadMutexLock(&pMgmt->pData->statusInfolock);
|
if (taosThreadMutexLock(&pMgmt->pData->statusInfolock) != 0) {
|
||||||
req.pVloads = taosArrayDup(tsVinfo.pVloads, NULL);
|
dError("failed to lock status info lock");
|
||||||
taosArrayDestroy(tsVinfo.pVloads);
|
return;
|
||||||
|
}
|
||||||
|
taosArraySwap(req.pVloads, tsVinfo.pVloads);
|
||||||
tsVinfo.pVloads = NULL;
|
tsVinfo.pVloads = NULL;
|
||||||
(void)taosThreadMutexUnlock(&pMgmt->pData->statusInfolock);
|
if (taosThreadMutexUnlock(&pMgmt->pData->statusInfolock) != 0) {
|
||||||
|
dError("failed to unlock status info lock");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
dDebug("send status req to mnode, statusSeq:%d, begin to get mnode loads", pMgmt->statusSeq);
|
dDebug("send status req to mnode, statusSeq:%d, begin to get mnode loads", pMgmt->statusSeq);
|
||||||
SMonMloadInfo minfo = {0};
|
SMonMloadInfo minfo = {0};
|
||||||
|
@ -239,10 +244,20 @@ void dmUpdateStatusInfo(SDnodeMgmt *pMgmt) {
|
||||||
SMonVloadInfo vinfo = {0};
|
SMonVloadInfo vinfo = {0};
|
||||||
dDebug("begin to get vnode loads");
|
dDebug("begin to get vnode loads");
|
||||||
(*pMgmt->getVnodeLoadsFp)(&vinfo);
|
(*pMgmt->getVnodeLoadsFp)(&vinfo);
|
||||||
(void)taosThreadMutexLock(&pMgmt->pData->statusInfolock);
|
if (taosThreadMutexLock(&pMgmt->pData->statusInfolock) != 0) {
|
||||||
if (tsVinfo.pVloads == NULL) tsVinfo.pVloads = taosArrayDup(vinfo.pVloads, NULL);
|
dError("failed to lock status info lock");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (tsVinfo.pVloads == NULL) {
|
||||||
|
taosArraySwap(tsVinfo.pVloads, vinfo.pVloads);
|
||||||
|
} else {
|
||||||
taosArrayDestroy(vinfo.pVloads);
|
taosArrayDestroy(vinfo.pVloads);
|
||||||
(void)taosThreadMutexUnlock(&pMgmt->pData->statusInfolock);
|
vinfo.pVloads = NULL;
|
||||||
|
}
|
||||||
|
if (taosThreadMutexUnlock(&pMgmt->pData->statusInfolock) != 0) {
|
||||||
|
dError("failed to unlock status info lock");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void dmSendNotifyReq(SDnodeMgmt *pMgmt, SNotifyReq *pReq) {
|
void dmSendNotifyReq(SDnodeMgmt *pMgmt, SNotifyReq *pReq) {
|
||||||
|
|
Loading…
Reference in New Issue