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

Unified Diff: net/socket/client_socket_pool_base.cc

Issue 1091793002: Report the connect status of the oldest connection in the socket pool. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed typo Created 5 years, 8 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/socket/client_socket_pool_base.h ('k') | net/socket/client_socket_pool_base_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/client_socket_pool_base.cc
diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
index 0bc0056b8355a6fd2c5a3936dee61222a27076f5..9cf25bbdb133e482c8b40ffc700c344e55e8642a 100644
--- a/net/socket/client_socket_pool_base.cc
+++ b/net/socket/client_socket_pool_base.cc
@@ -4,6 +4,8 @@
#include "net/socket/client_socket_pool_base.h"
+#include <algorithm>
+
#include "base/compiler_specific.h"
#include "base/format_macros.h"
#include "base/logging.h"
@@ -572,13 +574,8 @@ LoadState ClientSocketPoolBaseHelper::GetLoadState(
const Group& group = *group_it->second;
if (group.HasConnectJobForHandle(handle)) {
- // Just return the state of the farthest along ConnectJob for the first
- // group.jobs().size() pending requests.
- LoadState max_state = LOAD_STATE_IDLE;
- for (const auto& job : group.jobs()) {
- max_state = std::max(max_state, job->GetLoadState());
- }
- return max_state;
+ // Just return the state of the oldest ConnectJob.
+ return (*group.jobs().begin())->GetLoadState();
}
if (group.CanUseAdditionalSocketSlot(max_sockets_per_group_))
@@ -628,7 +625,7 @@ base::DictionaryValue* ClientSocketPoolBaseHelper::GetInfoAsValue(
group_dict->Set("idle_sockets", idle_socket_list);
base::ListValue* connect_jobs_list = new base::ListValue();
- std::set<ConnectJob*>::const_iterator job = group->jobs().begin();
+ std::list<ConnectJob*>::const_iterator job = group->jobs().begin();
for (job = group->jobs().begin(); job != group->jobs().end(); job++) {
int source_id = (*job)->net_log().source().id;
connect_jobs_list->Append(new base::FundamentalValue(source_id));
@@ -1192,19 +1189,16 @@ void ClientSocketPoolBaseHelper::Group::AddJob(scoped_ptr<ConnectJob> job,
if (is_preconnect)
++unassigned_job_count_;
- jobs_.insert(job.release());
+ jobs_.push_back(job.release());
}
void ClientSocketPoolBaseHelper::Group::RemoveJob(ConnectJob* job) {
scoped_ptr<ConnectJob> owned_job(job);
SanityCheck();
- std::set<ConnectJob*>::iterator it = jobs_.find(job);
- if (it != jobs_.end()) {
- jobs_.erase(it);
- } else {
- NOTREACHED();
- }
+ // Check that |job| is in the list.
+ DCHECK_EQ(*std::find(jobs_.begin(), jobs_.end(), job), job);
+ jobs_.remove(job);
size_t job_count = jobs_.size();
if (job_count < unassigned_job_count_)
unassigned_job_count_ = job_count;
« no previous file with comments | « net/socket/client_socket_pool_base.h ('k') | net/socket/client_socket_pool_base_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698