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:
committed by
Facebook GitHub Bot
parent
1f38f6b252
commit
b1cb1d32af
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user