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 @@ -126,6 +126,11 @@ size_t CSerializedNetMsg::GetMemoryUsage() const noexcept
126
126
return sizeof (*this ) + memusage::DynamicUsage (m_type) + memusage::DynamicUsage (data);
127
127
}
128
128
129
+ size_t CNetMessage::GetMemoryUsage () const noexcept
130
+ {
131
+ return sizeof (*this ) + memusage::DynamicUsage (m_type) + m_recv.GetMemoryUsage ();
132
+ }
133
+
129
134
void CConnman::AddAddrFetch (const std::string& strDest)
130
135
{
131
136
LOCK (m_addr_fetches_mutex);
@@ -3770,7 +3775,7 @@ void CNode::MarkReceivedMsgsForProcessing()
3770
3775
for (const auto & msg : vRecvMsg) {
3771
3776
// vRecvMsg contains only completed CNetMessage
3772
3777
// the single possible partially deserialized message are held by TransportDeserializer
3773
- nSizeAdded += msg.m_raw_message_size ;
3778
+ nSizeAdded += msg.GetMemoryUsage () ;
3774
3779
}
3775
3780
3776
3781
LOCK (m_msg_process_queue_mutex);
@@ -3787,7 +3792,7 @@ std::optional<std::pair<CNetMessage, bool>> CNode::PollMessage()
3787
3792
std::list<CNetMessage> msgs;
3788
3793
// Just take one message
3789
3794
msgs.splice (msgs.begin (), m_msg_process_queue, m_msg_process_queue.begin ());
3790
- m_msg_process_queue_size -= msgs.front ().m_raw_message_size ;
3795
+ m_msg_process_queue_size -= msgs.front ().GetMemoryUsage () ;
3791
3796
fPauseRecv = m_msg_process_queue_size > m_recv_flood_size;
3792
3797
3793
3798
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