From fd543f9c29e1a7225bb0f6f008d9b6d08d28a73f Mon Sep 17 00:00:00 2001 From: orignal Date: Thu, 2 Jul 2026 10:19:29 -0400 Subject: [PATCH] use std::list for sent packets --- libi2pd/Streaming.cpp | 8 ++++---- libi2pd/Streaming.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libi2pd/Streaming.cpp b/libi2pd/Streaming.cpp index 0da2a508..d980cdb2 100644 --- a/libi2pd/Streaming.cpp +++ b/libi2pd/Streaming.cpp @@ -727,7 +727,7 @@ namespace stream if (nacked) { LogPrint (eLogDebug, "Streaming: Packet ", seqn, " NACK"); - ++it; + it++; continue; } } @@ -743,7 +743,7 @@ namespace stream else if (!sentPacket->resent && seqn > m_TunnelsChangeSequenceNumber && rtt >= 0) rttSample = std::min (rttSample, (int)rtt); LogPrint (eLogDebug, "Streaming: Packet ", seqn, " acknowledged rtt=", rtt, " sentTime=", sentPacket->sendTime); - m_SentPackets.erase (it++); + it = m_SentPackets.erase (it); m_LocalDestination.DeletePacket (sentPacket); acknowledged = true; ackPacketsCounter++; @@ -1120,7 +1120,7 @@ namespace stream for (auto& it: packets) { it->sendTime = ts; - m_SentPackets.emplace (it); + m_SentPackets.emplace_back (it); } SendPackets (packets); m_LastSendTime = ts; @@ -1453,7 +1453,7 @@ namespace stream if (!packet->sendTime) packet->sendTime = i2p::util::GetMillisecondsSinceEpoch (); SendPackets ({ packet }); bool isEmpty = m_SentPackets.empty (); - m_SentPackets.emplace (packet); + m_SentPackets.emplace_back (packet); if (isEmpty) ScheduleResend (); return true; diff --git a/libi2pd/Streaming.h b/libi2pd/Streaming.h index 4f4b4da9..0ef9c919 100644 --- a/libi2pd/Streaming.h +++ b/libi2pd/Streaming.h @@ -285,7 +285,7 @@ namespace stream std::shared_ptr m_CurrentOutboundTunnel; std::queue m_ReceiveQueue; std::set m_SavedPackets; - std::set m_SentPackets; + std::list m_SentPackets; std::list m_NACKedPackets; boost::asio::steady_timer m_ReceiveTimer, m_SendTimer, m_ResendTimer, m_AckSendTimer; size_t m_NumSentBytes, m_NumReceivedBytes;