net: handle message accounting in ReceiveMsgBytes
This allows locking to be pushed down to only where it's needed Also reuse the current time rather than checking multiple times.
This commit is contained in:
parent
56212e20ac
commit
60befa3997
1 changed files with 4 additions and 3 deletions
|
@ -648,6 +648,9 @@ void CNode::copyStats(CNodeStats &stats)
|
|||
bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes, bool& complete)
|
||||
{
|
||||
complete = false;
|
||||
int64_t nTimeMicros = GetTimeMicros();
|
||||
nLastRecv = nTimeMicros / 1000000;
|
||||
nRecvBytes += nBytes;
|
||||
while (nBytes > 0) {
|
||||
|
||||
// get current incomplete message, or create a new one
|
||||
|
@ -685,7 +688,7 @@ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes, bool& complete
|
|||
assert(i != mapRecvBytesPerMsgCmd.end());
|
||||
i->second += msg.hdr.nMessageSize + CMessageHeader::HEADER_SIZE;
|
||||
|
||||
msg.nTime = GetTimeMicros();
|
||||
msg.nTime = nTimeMicros;
|
||||
complete = true;
|
||||
}
|
||||
}
|
||||
|
@ -1237,8 +1240,6 @@ void CConnman::ThreadSocketHandler()
|
|||
pnode->CloseSocketDisconnect();
|
||||
if(notify)
|
||||
condMsgProc.notify_one();
|
||||
pnode->nLastRecv = GetTime();
|
||||
pnode->nRecvBytes += nBytes;
|
||||
RecordBytesRecv(nBytes);
|
||||
}
|
||||
else if (nBytes == 0)
|
||||
|
|
Loading…
Reference in a new issue