Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1332)

Unified Diff: net/tools/quic/test_tools/packet_dropping_test_writer.cc

Issue 76723002: Land Recent QUIC Changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compilation error Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/tools/quic/test_tools/packet_dropping_test_writer.cc
diff --git a/net/tools/quic/test_tools/packet_dropping_test_writer.cc b/net/tools/quic/test_tools/packet_dropping_test_writer.cc
index 61e80bc8fdd51d8e529a3d6df9eaf671bfa1b9c6..11aafb694954b25ccdae8690cb23d1287e003bbf 100644
--- a/net/tools/quic/test_tools/packet_dropping_test_writer.cc
+++ b/net/tools/quic/test_tools/packet_dropping_test_writer.cc
@@ -41,7 +41,7 @@ class DelayAlarm : public QuicAlarm::Delegate {
: writer_(writer) { }
virtual QuicTime OnAlarm() OVERRIDE {
- return writer_->ReleaseNextPacket();
+ return writer_->ReleaseOldPackets();
}
private:
@@ -80,6 +80,8 @@ WriteResult PacketDroppingTestWriter::WritePacket(
const net::IPAddressNumber& self_address,
const net::IPEndPoint& peer_address,
QuicBlockedWriterInterface* blocked_writer) {
+ ReleaseOldPackets();
+
base::AutoLock locked(config_mutex_);
if (fake_packet_loss_percentage_ > 0 &&
simple_random_.RandUint64() % 100 <
@@ -171,6 +173,17 @@ QuicTime PacketDroppingTestWriter::ReleaseNextPacket() {
return delayed_packets_.begin()->send_time;
}
+QuicTime PacketDroppingTestWriter::ReleaseOldPackets() {
+ while (!delayed_packets_.empty()) {
+ QuicTime next_send_time = delayed_packets_.front().send_time;
+ if (next_send_time > clock_->Now()) {
+ return next_send_time;
+ }
+ ReleaseNextPacket();
+ }
+ return QuicTime::Zero();
+}
+
PacketDroppingTestWriter::DelayedWrite::DelayedWrite(
const char* buffer,
size_t buf_len,
« no previous file with comments | « net/tools/quic/test_tools/packet_dropping_test_writer.h ('k') | net/tools/quic/test_tools/quic_test_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698