mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-07-29 03:41:11 +03:00
Aggregate QUIC stats callbacks
Summary: This reduces the number of stats callbacks when processing multiple packets in rapid succession. Reviewed By: mjoras Differential Revision: D56315022 fbshipit-source-id: 750024301f28b21e3125c144ead6f115706736a4
This commit is contained in:
committed by
Facebook GitHub Bot
parent
406c24908d
commit
ee90db8520
@ -239,6 +239,7 @@ FrameScheduler::FrameScheduler(
|
||||
SchedulingResult FrameScheduler::scheduleFramesForPacket(
|
||||
PacketBuilderInterface&& builder,
|
||||
uint32_t writableBytes) {
|
||||
size_t shortHeaderPadding = 0;
|
||||
builder.encodePacketHeader();
|
||||
// We need to keep track of writable bytes after writing header.
|
||||
writableBytes = writableBytes > builder.getHeaderBytes()
|
||||
@ -322,12 +323,13 @@ SchedulingResult FrameScheduler::scheduleFramesForPacket(
|
||||
for (size_t i = 0; i < paddingIncrement; i++) {
|
||||
writeFrame(PaddingFrame(), builder);
|
||||
}
|
||||
QUIC_STATS(conn_.statsCallback, onShortHeaderPadding, paddingIncrement);
|
||||
shortHeaderPadding = paddingIncrement;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return SchedulingResult(folly::none, std::move(builder).buildPacket());
|
||||
return SchedulingResult(
|
||||
folly::none, std::move(builder).buildPacket(), shortHeaderPadding);
|
||||
}
|
||||
|
||||
void FrameScheduler::writeNextAcks(PacketBuilderInterface& builder) {
|
||||
@ -942,7 +944,9 @@ SchedulingResult CloningScheduler::scheduleFramesForPacket(
|
||||
auto rebuildResult = rebuilder.rebuildFromPacket(outstandingPacket);
|
||||
if (rebuildResult) {
|
||||
return SchedulingResult(
|
||||
std::move(rebuildResult), std::move(*internalBuilder).buildPacket());
|
||||
std::move(rebuildResult),
|
||||
std::move(*internalBuilder).buildPacket(),
|
||||
0);
|
||||
} else if (
|
||||
conn_.transportSettings.dataPathType ==
|
||||
DataPathType::ContinuousMemory) {
|
||||
@ -961,7 +965,7 @@ SchedulingResult CloningScheduler::scheduleFramesForPacket(
|
||||
buf->trimEnd(buf->length() - prevSize);
|
||||
}
|
||||
}
|
||||
return SchedulingResult(folly::none, folly::none);
|
||||
return SchedulingResult(folly::none, folly::none, 0);
|
||||
}
|
||||
|
||||
folly::StringPiece CloningScheduler::name() const {
|
||||
|
Reference in New Issue
Block a user