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
124124 return sizeof (*this ) + memusage::DynamicUsage (m_type) + memusage::DynamicUsage (data);
125125}
126126
127+ size_t CNetMessage::GetMemoryUsage () const noexcept
128+ {
129+ return sizeof (*this ) + memusage::DynamicUsage (m_type) + m_recv.GetMemoryUsage ();
130+ }
131+
127132void CConnman::AddAddrFetch (const std::string& strDest)
128133{
129134 LOCK (m_addr_fetches_mutex);
@@ -3769,7 +3774,7 @@ void CNode::MarkReceivedMsgsForProcessing()
37693774 for (const auto & msg : vRecvMsg) {
37703775 // vRecvMsg contains only completed CNetMessage
37713776 // the single possible partially deserialized message are held by TransportDeserializer
3772- nSizeAdded += msg.m_raw_message_size ;
3777+ nSizeAdded += msg.GetMemoryUsage () ;
37733778 }
37743779
37753780 LOCK (m_msg_process_queue_mutex);
@@ -3786,7 +3791,7 @@ std::optional<std::pair<CNetMessage, bool>> CNode::PollMessage()
37863791 std::list<CNetMessage> msgs;
37873792 // Just take one message
37883793 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 () ;
37903795 fPauseRecv = m_msg_process_queue_size > m_recv_flood_size;
37913796
37923797 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
245245 CNetMessage (const CNetMessage&) = delete ;
246246 CNetMessage& operator =(CNetMessage&&) = default ;
247247 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 ;
248251};
249252
250253/* * 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