Browse Source

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.
0.14
Cory Fields 8 years ago
parent
commit
60befa3997
  1. 7
      src/net.cpp

7
src/net.cpp

@ -648,6 +648,9 @@ void CNode::copyStats(CNodeStats &stats) @@ -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 @@ -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() @@ -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…
Cancel
Save