File tree Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -124,6 +124,11 @@ size_t CSerializedNetMsg::GetMemoryUsage() const noexcept
124
124
return sizeof (*this ) + memusage::DynamicUsage (m_type) + memusage::DynamicUsage (data);
125
125
}
126
126
127
+ size_t CNetMessage::GetMemoryUsage () const noexcept
128
+ {
129
+ return sizeof (*this ) + memusage::DynamicUsage (m_type) + m_recv.GetMemoryUsage ();
130
+ }
131
+
127
132
void CConnman::AddAddrFetch (const std::string& strDest)
128
133
{
129
134
LOCK (m_addr_fetches_mutex);
@@ -3769,7 +3774,7 @@ void CNode::MarkReceivedMsgsForProcessing()
3769
3774
for (const auto & msg : vRecvMsg) {
3770
3775
// vRecvMsg contains only completed CNetMessage
3771
3776
// the single possible partially deserialized message are held by TransportDeserializer
3772
- nSizeAdded += msg.m_raw_message_size ;
3777
+ nSizeAdded += msg.GetMemoryUsage () ;
3773
3778
}
3774
3779
3775
3780
LOCK (m_msg_process_queue_mutex);
@@ -3786,7 +3791,7 @@ std::optional<std::pair<CNetMessage, bool>> CNode::PollMessage()
3786
3791
std::list<CNetMessage> msgs;
3787
3792
// Just take one message
3788
3793
msgs.splice (msgs.begin (), m_msg_process_queue, m_msg_process_queue.begin ());
3789
- m_msg_process_queue_size -= msgs.front ().m_raw_message_size ;
3794
+ m_msg_process_queue_size -= msgs.front ().GetMemoryUsage () ;
3790
3795
fPauseRecv = m_msg_process_queue_size > m_recv_flood_size;
3791
3796
3792
3797
return std::make_pair (std::move (msgs.front ()), !m_msg_process_queue.empty ());
Original file line number Diff line number Diff line change @@ -245,6 +245,9 @@ class CNetMessage
245
245
CNetMessage (const CNetMessage&) = delete ;
246
246
CNetMessage& operator =(CNetMessage&&) = default ;
247
247
CNetMessage& operator =(const CNetMessage&) = delete ;
248
+
249
+ /* * Compute total memory usage of this object (own memory + any dynamic memory). */
250
+ size_t GetMemoryUsage () const noexcept ;
248
251
};
249
252
250
253
/* * The Transport converts one connection's sent messages to wire bytes, and received bytes back. */
You can’t perform that action at this time.
0 commit comments