1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-07-30 14:43:05 +03:00

Revert D56496459: Use CircularDeque in streams and datagram state.

Differential Revision:
D56496459

Original commit changeset: ec4049614939

Original Phabricator Diff: D56496459

fbshipit-source-id: 5b1ee6dcfe59ae2e62a6d818f5839d95d26d4431
This commit is contained in:
Jake Bolam
2024-04-25 04:37:33 -07:00
committed by Facebook GitHub Bot
parent 1603c88b3c
commit 3570f0122f
9 changed files with 13 additions and 15 deletions

View File

@ -757,7 +757,7 @@ class QuicSocket {
* }; * };
*/ */
using PeekIterator = CircularDeque<StreamBuffer>::const_iterator; using PeekIterator = std::deque<StreamBuffer>::const_iterator;
class PeekCallback { class PeekCallback {
public: public:
virtual ~PeekCallback() = default; virtual ~PeekCallback() = default;

View File

@ -457,7 +457,7 @@ void handleRetransmissionWritten(
uint64_t frameOffset, uint64_t frameOffset,
uint64_t frameLen, uint64_t frameLen,
bool frameFin, bool frameFin,
CircularDeque<StreamBuffer>::iterator lossBufferIter) { std::deque<StreamBuffer>::iterator lossBufferIter) {
auto bufferLen = lossBufferIter->data.chainLength(); auto bufferLen = lossBufferIter->data.chainLength();
Buf bufWritten; Buf bufWritten;
if (frameLen == bufferLen && frameFin == lossBufferIter->eof) { if (frameLen == bufferLen && frameFin == lossBufferIter->eof) {

View File

@ -171,7 +171,7 @@ void handleRetransmissionWritten(
uint64_t frameOffset, uint64_t frameOffset,
uint64_t frameLen, uint64_t frameLen,
bool frameFin, bool frameFin,
CircularDeque<StreamBuffer>::iterator lossBufferIter); std::deque<StreamBuffer>::iterator lossBufferIter);
/** /**
* Update the connection and stream state after stream data is written and deal * Update the connection and stream state after stream data is written and deal

View File

@ -7,7 +7,6 @@
#pragma once #pragma once
#include <quic/common/CircularDeque.h>
#include <quic/fizz/handshake/FizzCryptoFactory.h> #include <quic/fizz/handshake/FizzCryptoFactory.h>
#include <quic/server/handshake/ServerHandshake.h> #include <quic/server/handshake/ServerHandshake.h>
@ -49,7 +48,7 @@ class FizzServerHandshake : public ServerHandshake {
void writeNewSessionTicketToCrypto(const AppToken& appToken) override; void writeNewSessionTicketToCrypto(const AppToken& appToken) override;
using PendingEvent = fizz::WriteNewSessionTicket; using PendingEvent = fizz::WriteNewSessionTicket;
CircularDeque<PendingEvent> pendingEvents_; std::deque<PendingEvent> pendingEvents_;
std::unique_ptr<FizzCryptoFactory> cryptoFactory_; std::unique_ptr<FizzCryptoFactory> cryptoFactory_;

View File

@ -151,8 +151,8 @@ void appendDataToReadBufferCommon(
// Start overlap will point to the first buffer that overlaps with the // Start overlap will point to the first buffer that overlaps with the
// current buffer and End overlap will point to the last buffer that overlaps. // current buffer and End overlap will point to the last buffer that overlaps.
// They must always be set together. // They must always be set together.
folly::Optional<decltype(stream.readBuffer)::iterator> startOverlap; folly::Optional<std::deque<StreamBuffer>::iterator> startOverlap;
folly::Optional<decltype(stream.readBuffer)::iterator> endOverlap; folly::Optional<std::deque<StreamBuffer>::iterator> endOverlap;
StreamBuffer* current = &buffer; StreamBuffer* current = &buffer;
bool currentAlreadyInserted = false; bool currentAlreadyInserted = false;

View File

@ -73,7 +73,7 @@ Buf readDataFromCryptoStream(QuicCryptoStream& stream, uint64_t amount = 0);
* Invokes provided callback on the existing data. * Invokes provided callback on the existing data.
* Does not affect stream state (as opposed to read). * Does not affect stream state (as opposed to read).
*/ */
using PeekIterator = CircularDeque<StreamBuffer>::const_iterator; using PeekIterator = std::deque<StreamBuffer>::const_iterator;
void peekDataFromQuicStream( void peekDataFromQuicStream(
QuicStreamState& state, QuicStreamState& state,
const folly::Function<void(StreamId id, const folly::Range<PeekIterator>&) const folly::Function<void(StreamId id, const folly::Range<PeekIterator>&)

View File

@ -13,7 +13,6 @@
#include <quic/codec/QuicWriteCodec.h> #include <quic/codec/QuicWriteCodec.h>
#include <quic/codec/Types.h> #include <quic/codec/Types.h>
#include <quic/common/BufAccessor.h> #include <quic/common/BufAccessor.h>
#include <quic/common/CircularDeque.h>
#include <quic/congestion_control/CongestionController.h> #include <quic/congestion_control/CongestionController.h>
#include <quic/congestion_control/PacketProcessor.h> #include <quic/congestion_control/PacketProcessor.h>
#include <quic/congestion_control/ThrottlingSignalProvider.h> #include <quic/congestion_control/ThrottlingSignalProvider.h>
@ -659,9 +658,9 @@ struct QuicConnectionStateBase : public folly::DelayedDestruction {
uint32_t maxReadBufferSize{kDefaultMaxDatagramsBuffered}; uint32_t maxReadBufferSize{kDefaultMaxDatagramsBuffered};
uint32_t maxWriteBufferSize{kDefaultMaxDatagramsBuffered}; uint32_t maxWriteBufferSize{kDefaultMaxDatagramsBuffered};
// Buffers Incoming Datagrams // Buffers Incoming Datagrams
CircularDeque<ReadDatagram> readBuffer; std::deque<ReadDatagram> readBuffer;
// Buffers Outgoing Datagrams // Buffers Outgoing Datagrams
CircularDeque<BufQueue> writeBuffer; std::deque<BufQueue> writeBuffer;
}; };
DatagramState datagramState; DatagramState datagramState;

View File

@ -102,7 +102,7 @@ struct QuicStreamLike {
// List of bytes that have been read and buffered. We need to buffer // List of bytes that have been read and buffered. We need to buffer
// bytes in case we get bytes out of order. // bytes in case we get bytes out of order.
CircularDeque<StreamBuffer> readBuffer; std::deque<StreamBuffer> readBuffer;
// List of bytes that have been written to the QUIC layer. // List of bytes that have been written to the QUIC layer.
BufQueue writeBuffer{}; BufQueue writeBuffer{};
@ -125,7 +125,7 @@ struct QuicStreamLike {
// Stores a list of buffers which have been marked as loss by loss detector. // Stores a list of buffers which have been marked as loss by loss detector.
// Each one represents one StreamFrame that was written. // Each one represents one StreamFrame that was written.
CircularDeque<StreamBuffer> lossBuffer; std::deque<StreamBuffer> lossBuffer;
// Current offset of the start bytes in the write buffer. // Current offset of the start bytes in the write buffer.
// This changes when we pop stuff off the writeBuffer. // This changes when we pop stuff off the writeBuffer.
@ -485,7 +485,7 @@ struct QuicStreamState : public QuicStreamLike {
folly::F14FastMap<uint64_t, WriteBufferMeta> retransmissionBufMetas; folly::F14FastMap<uint64_t, WriteBufferMeta> retransmissionBufMetas;
// WriteBufferMetas that's already marked lost. They will be retransmitted. // WriteBufferMetas that's already marked lost. They will be retransmitted.
CircularDeque<WriteBufferMeta> lossBufMetas; std::deque<WriteBufferMeta> lossBufMetas;
uint64_t streamLossCount{0}; uint64_t streamLossCount{0};

View File

@ -26,7 +26,7 @@ namespace test {
constexpr uint8_t kStreamIncrement = 0x04; constexpr uint8_t kStreamIncrement = 0x04;
using PeekIterator = CircularDeque<StreamBuffer>::const_iterator; using PeekIterator = std::deque<StreamBuffer>::const_iterator;
class QuicStreamFunctionsTest : public Test { class QuicStreamFunctionsTest : public Test {
public: public: