1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-25 15:43:13 +03:00

Don't use currentWriteOffset as highest ack offset

Summary: Don't use currentWriteOffset as highest ack offset

Reviewed By: yangchi

Differential Revision: D21679541

fbshipit-source-id: de8814aef4959abc2e10402c5d5e294ef03f8b19
This commit is contained in:
Konstantin Tsoy
2020-05-28 12:44:32 -07:00
committed by Facebook GitHub Bot
parent 1f38f6b252
commit b1cb1d32af
6 changed files with 36 additions and 37 deletions

View File

@@ -381,21 +381,16 @@ uint64_t getLargestWriteOffsetSeen(const QuicStreamState& stream) {
stream.currentWriteOffset + stream.writeBuffer.chainLength());
}
uint64_t getStreamNextOffsetToDeliver(const QuicStreamState& stream) {
auto minOffsetToDeliver = stream.currentWriteOffset;
folly::Optional<uint64_t> getLargestDeliverableOffset(
const QuicStreamState& stream) {
// If the acked intervals is not empty, then the furthest acked interval
// starting at zero is the next offset. If there is no interval starting at
// zero then we cannot deliver any offsets.
minOffsetToDeliver = std::min(
minOffsetToDeliver,
stream.ackedIntervals.empty() || stream.ackedIntervals.front().start != 0
? minOffsetToDeliver
: stream.ackedIntervals.front().end);
minOffsetToDeliver = std::min(
minOffsetToDeliver,
stream.lossBuffer.empty() ? minOffsetToDeliver
: stream.lossBuffer[0].offset);
return minOffsetToDeliver;
if (stream.ackedIntervals.empty() ||
stream.ackedIntervals.front().start != 0) {
return folly::none;
}
return stream.ackedIntervals.front().end;
}
// TODO reap