+14
-16
lines changedFilter options
+14
-16
lines changed Original file line number Diff line number Diff line change
@@ -7663,7 +7663,7 @@ void srt::CUDT::releaseSynch()
7663
7663
}
7664
7664
7665
7665
// [[using locked(m_RcvBufferLock)]];
7666
-
int32_t srt::CUDT::ackDataUpTo(int32_t ack)
7666
+
void srt::CUDT::ackDataUpTo(int32_t ack)
7667
7667
{
7668
7668
const int acksize SRT_ATR_UNUSED = CSeqNo::seqoff(m_iRcvLastSkipAck, ack);
7669
7669
@@ -7673,24 +7673,14 @@ int32_t srt::CUDT::ackDataUpTo(int32_t ack)
7673
7673
m_iRcvLastAck = ack;
7674
7674
m_iRcvLastSkipAck = ack;
7675
7675
7676
-
#if ENABLE_NEW_RCVBUFFER
7677
-
const std::pair<int, int> range = m_pRcvBuffer->getAvailablePacketsRange();
7678
-
// Some packets acknowledged are not available in the buffer.
7679
-
if (CSeqNo::seqcmp(range.second, ack) < 0)
7680
-
{
7681
-
LOGC(xtlog.Error, log << "IPE: Acknowledged seqno %" << ack << " outruns the RCV buffer state %" << range.first
7682
-
<< " - %" << range.second);
7683
-
}
7684
-
return CSeqNo::decseq(range.second);
7685
-
#else
7676
+
#if !ENABLE_NEW_RCVBUFFER
7686
7677
// NOTE: This is new towards UDT and prevents spurious
7687
7678
// wakeup of select/epoll functions when no new packets
7688
7679
// were signed off for extraction.
7689
7680
if (acksize > 0)
7690
7681
{
7691
7682
m_pRcvBuffer->ackData(acksize);
7692
7683
}
7693
-
return ack;
7694
7684
#endif
7695
7685
}
7696
7686
@@ -7930,7 +7920,16 @@ int srt::CUDT::sendCtrlAck(CPacket& ctrlpkt, int size)
7930
7920
// IF ack %> m_iRcvLastAck
7931
7921
if (CSeqNo::seqcmp(ack, m_iRcvLastAck) > 0)
7932
7922
{
7933
-
const int32_t group_read_seq SRT_ATR_UNUSED = ackDataUpTo(ack);
7923
+
ackDataUpTo(ack);
7924
+
7925
+
#if ENABLE_EXPERIMENTAL_BONDING
7926
+
#if ENABLE_NEW_RCVBUFFER
7927
+
const int32_t group_read_seq = m_pRcvBuffer->getFirstReadablePacketInfo(steady_clock::now()).seqno;
7928
+
#else
7929
+
const int32_t group_read_seq = CSeqNo::decseq(ack);
7930
+
#endif
7931
+
#endif
7932
+
7934
7933
InvertedLock un_bufflock (m_RcvBufferLock);
7935
7934
7936
7935
#if ENABLE_EXPERIMENTAL_BONDING
@@ -8015,7 +8014,7 @@ int srt::CUDT::sendCtrlAck(CPacket& ctrlpkt, int size)
8015
8014
}
8016
8015
}
8017
8016
#if ENABLE_EXPERIMENTAL_BONDING
8018
-
if (m_parent->m_GroupOf)
8017
+
if (group_read_seq != SRT_SEQNO_NONE && m_parent->m_GroupOf)
8019
8018
{
8020
8019
// See above explanation for double-checking
8021
8020
ScopedLock glock (uglobal().m_GlobControlLock);
Original file line number Diff line number Diff line change
@@ -1075,8 +1075,7 @@ class CUDT
1075
1075
/// @brief Acknowledge reading position up to the @p seq.
1076
1076
/// Updates m_iRcvLastAck and m_iRcvLastSkipAck to @p seq.
1077
1077
/// @param seq first unacknowledged packet sequence number.
1078
-
/// @return
1079
-
int32_t ackDataUpTo(int32_t seq);
1078
+
void ackDataUpTo(int32_t seq);
1080
1079
1081
1080
void handleKeepalive(const char* data, size_t lenghth);
1082
1081
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4