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

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

Issue 131503016: Properly trigger OnCanWrite processing from PacketDroppingTestWriter. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months 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
« no previous file with comments | « net/tools/quic/test_tools/packet_dropping_test_writer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 b3b7ca22e70eafbf34e67b027bc1227be529f912..de6b2019a6d849428585080ed33d8c7bd5d146cc 100644
--- a/net/tools/quic/test_tools/packet_dropping_test_writer.cc
+++ b/net/tools/quic/test_tools/packet_dropping_test_writer.cc
@@ -22,9 +22,8 @@ class WriteUnblockedAlarm : public QuicAlarm::Delegate {
: writer_(writer) { }
virtual QuicTime OnAlarm() OVERRIDE {
- DCHECK(writer_->blocked_writer());
DVLOG(1) << "Unblocking socket.";
- writer_->blocked_writer()->OnCanWrite();
+ writer_->OnCanWrite();
return QuicTime::Zero();
}
@@ -49,7 +48,6 @@ class DelayAlarm : public QuicAlarm::Delegate {
PacketDroppingTestWriter::PacketDroppingTestWriter()
: clock_(NULL),
- blocked_writer_(NULL),
cur_buffer_size_(0),
config_mutex_(),
fake_packet_loss_percentage_(0),
@@ -65,13 +63,15 @@ PacketDroppingTestWriter::PacketDroppingTestWriter()
PacketDroppingTestWriter::~PacketDroppingTestWriter() {}
-void PacketDroppingTestWriter::SetConnectionHelper(
- QuicEpollConnectionHelper* helper) {
+void PacketDroppingTestWriter::Initialize(
+ QuicEpollConnectionHelper* helper,
+ Delegate* on_can_write) {
clock_ = helper->GetClock();
write_unblocked_alarm_.reset(
helper->CreateAlarm(new WriteUnblockedAlarm(this)));
delay_alarm_.reset(
helper->CreateAlarm(new DelayAlarm(this)));
+ on_can_write_.reset(on_can_write);
}
WriteResult PacketDroppingTestWriter::WritePacket(
@@ -92,9 +92,9 @@ WriteResult PacketDroppingTestWriter::WritePacket(
if (fake_blocked_socket_percentage_ > 0 &&
simple_random_.RandUint64() % 100 <
static_cast<uint64>(fake_blocked_socket_percentage_)) {
+ CHECK(on_can_write_.get() != NULL);
DVLOG(1) << "Blocking socket.";
if (!write_unblocked_alarm_->IsSet()) {
- blocked_writer_ = blocked_writer;
// Set the alarm to fire immediately.
write_unblocked_alarm_->Set(clock_->ApproximateNow());
}
@@ -193,6 +193,10 @@ QuicTime PacketDroppingTestWriter::ReleaseOldPackets() {
return QuicTime::Zero();
}
+void PacketDroppingTestWriter::OnCanWrite() {
+ on_can_write_->OnCanWrite();
+}
+
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') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698