aboutsummaryrefslogtreecommitdiff
path: root/src/net.cpp
diff options
context:
space:
mode:
authorCory Fields <[email protected]>2016-12-31 02:05:17 -0500
committerCory Fields <[email protected]>2017-01-12 23:05:09 -0500
commit60befa3997b98d3f913010f2621bec734f643526 (patch)
tree0fc70214f870118c3363ce5c27dd0ff679664ee7 /src/net.cpp
parentnet: set message deserialization version when it's actually time to deserialize (diff)
downloaddiscoin-60befa3997b98d3f913010f2621bec734f643526.tar.xz
discoin-60befa3997b98d3f913010f2621bec734f643526.zip
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.
Diffstat (limited to 'src/net.cpp')
-rw-r--r--src/net.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 6d9971a0f..776047171 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -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)