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

Unified Diff: net/tools/quic/quic_time_wait_list_manager.cc

Issue 999353005: Land Recent QUIC Changes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: wrap Created 5 years, 9 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/quic_time_wait_list_manager.h ('k') | net/tools/quic/quic_time_wait_list_manager_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/tools/quic/quic_time_wait_list_manager.cc
diff --git a/net/tools/quic/quic_time_wait_list_manager.cc b/net/tools/quic/quic_time_wait_list_manager.cc
index 98f96ece34c455b36aa67f7bd514f15070184246..5d0423aaf59aebf0771413def70dc814fcf7571d 100644
--- a/net/tools/quic/quic_time_wait_list_manager.cc
+++ b/net/tools/quic/quic_time_wait_list_manager.cc
@@ -18,7 +18,6 @@
#include "net/quic/quic_framer.h"
#include "net/quic/quic_protocol.h"
#include "net/quic/quic_utils.h"
-#include "net/tools/epoll_server/epoll_server.h"
#include "net/tools/quic/quic_server_session.h"
using base::StringPiece;
@@ -30,27 +29,29 @@ namespace tools {
// "net/quic/quic_time_wait_list_manager.cc"
// A very simple alarm that just informs the QuicTimeWaitListManager to clean
-// up old connection_ids. This alarm should be unregistered and deleted before
+// up old connection_ids. This alarm should be cancelled and deleted before
// the QuicTimeWaitListManager is deleted.
-class ConnectionIdCleanUpAlarm : public EpollAlarm {
+class ConnectionIdCleanUpAlarm : public QuicAlarm::Delegate {
public:
explicit ConnectionIdCleanUpAlarm(
QuicTimeWaitListManager* time_wait_list_manager)
: time_wait_list_manager_(time_wait_list_manager) {
}
- int64 OnAlarm() override {
- EpollAlarm::OnAlarm();
+ QuicTime OnAlarm() override {
time_wait_list_manager_->CleanUpOldConnectionIds();
// Let the time wait manager register the alarm at appropriate time.
- return 0;
+ return QuicTime::Zero();
}
private:
// Not owned.
QuicTimeWaitListManager* time_wait_list_manager_;
+
+ DISALLOW_COPY_AND_ASSIGN(ConnectionIdCleanUpAlarm);
};
+
// This class stores pending public reset packets to be sent to clients.
// server_address - server address on which a packet what was received for
// a connection_id in time wait state.
@@ -83,20 +84,20 @@ class QuicTimeWaitListManager::QueuedPacket {
QuicTimeWaitListManager::QuicTimeWaitListManager(
QuicPacketWriter* writer,
QuicServerSessionVisitor* visitor,
- EpollServer* epoll_server,
+ QuicConnectionHelperInterface* helper,
const QuicVersionVector& supported_versions)
- : epoll_server_(epoll_server),
- kTimeWaitPeriod_(
+ : time_wait_period_(
QuicTime::Delta::FromSeconds(FLAGS_quic_time_wait_list_seconds)),
- connection_id_clean_up_alarm_(new ConnectionIdCleanUpAlarm(this)),
- clock_(epoll_server_),
+ connection_id_clean_up_alarm_(
+ helper->CreateAlarm(new ConnectionIdCleanUpAlarm(this))),
+ clock_(helper->GetClock()),
writer_(writer),
visitor_(visitor) {
SetConnectionIdCleanUpAlarm();
}
QuicTimeWaitListManager::~QuicTimeWaitListManager() {
- connection_id_clean_up_alarm_->UnregisterIfRegistered();
+ connection_id_clean_up_alarm_->Cancel();
STLDeleteElements(&pending_packets_queue_);
for (ConnectionIdMap::iterator it = connection_id_map_.begin();
it != connection_id_map_.end();
@@ -122,7 +123,7 @@ void QuicTimeWaitListManager::AddConnectionIdToTimeWait(
static_cast<size_t>(FLAGS_quic_time_wait_list_max_connections));
ConnectionIdData data(num_packets,
version,
- clock_.ApproximateNow(),
+ clock_->ApproximateNow(),
close_packet);
connection_id_map_.insert(std::make_pair(connection_id, data));
if (new_connection_id) {
@@ -253,27 +254,25 @@ bool QuicTimeWaitListManager::WriteToWire(QueuedPacket* queued_packet) {
}
void QuicTimeWaitListManager::SetConnectionIdCleanUpAlarm() {
- connection_id_clean_up_alarm_->UnregisterIfRegistered();
- int64 next_alarm_interval;
+ connection_id_clean_up_alarm_->Cancel();
+ QuicTime::Delta next_alarm_interval = QuicTime::Delta::Zero();
if (!connection_id_map_.empty()) {
QuicTime oldest_connection_id =
connection_id_map_.begin()->second.time_added;
- QuicTime now = clock_.ApproximateNow();
- if (now.Subtract(oldest_connection_id) < kTimeWaitPeriod_) {
- next_alarm_interval = oldest_connection_id.Add(kTimeWaitPeriod_)
- .Subtract(now)
- .ToMicroseconds();
+ QuicTime now = clock_->ApproximateNow();
+ if (now.Subtract(oldest_connection_id) < time_wait_period_) {
+ next_alarm_interval = oldest_connection_id.Add(time_wait_period_)
+ .Subtract(now);
} else {
- LOG(ERROR) << "ConnectionId lingered for longer than kTimeWaitPeriod";
- next_alarm_interval = 0;
+ LOG(ERROR) << "ConnectionId lingered for longer than time_wait_period_";
}
} else {
- // No connection_ids added so none will expire before kTimeWaitPeriod_.
- next_alarm_interval = kTimeWaitPeriod_.ToMicroseconds();
+ // No connection_ids added so none will expire before time_wait_period_.
+ next_alarm_interval = time_wait_period_;
}
- epoll_server_->RegisterAlarmApproximateDelta(
- next_alarm_interval, connection_id_clean_up_alarm_.get());
+ connection_id_clean_up_alarm_->Set(
+ clock_->ApproximateNow().Add(next_alarm_interval));
}
bool QuicTimeWaitListManager::MaybeExpireOldestConnection(
@@ -296,8 +295,8 @@ bool QuicTimeWaitListManager::MaybeExpireOldestConnection(
}
void QuicTimeWaitListManager::CleanUpOldConnectionIds() {
- QuicTime now = clock_.ApproximateNow();
- QuicTime expiration = now.Subtract(kTimeWaitPeriod_);
+ QuicTime now = clock_->ApproximateNow();
+ QuicTime expiration = now.Subtract(time_wait_period_);
while (MaybeExpireOldestConnection(expiration)) {
}
« no previous file with comments | « net/tools/quic/quic_time_wait_list_manager.h ('k') | net/tools/quic/quic_time_wait_list_manager_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698