Chromium Code Reviews| Index: net/socket/client_socket_pool_base.h |
| diff --git a/net/socket/client_socket_pool_base.h b/net/socket/client_socket_pool_base.h |
| index 4892780b4d641f0f52be1f05a73f5225ae8ed333..cd4b4f2a6b59f8198fa507665e6ce1b9c692459b 100644 |
| --- a/net/socket/client_socket_pool_base.h |
| +++ b/net/socket/client_socket_pool_base.h |
| @@ -112,6 +112,14 @@ class NET_EXPORT_PRIVATE ConnectJob { |
| const BoundNetLog& net_log() const { return net_log_; } |
| + // Used to order ConnectJob in a set with ascending connect time. |
| + struct CompareJobConnectStartTime { |
| + bool operator()(const ConnectJob* lhs, const ConnectJob* rhs) const { |
| + return lhs->connect_timing().connect_start < |
| + rhs->connect_timing().connect_start; |
| + } |
|
mmenke
2015/04/17 15:32:39
Also, should probably have two tests for this (In
mmenke
2015/04/17 15:32:40
If two ConnectJob are created at the same time, do
haavardm
2015/04/18 07:24:16
Agree. Using something else than a set here is pro
haavardm
2015/04/18 07:24:16
Yes, I discovered yesterday that that's exactly wh
mmenke
2015/04/18 13:49:57
That's probably because connect_start times can ch
haavardm
2015/04/20 13:03:48
Not sure I get this test. As I understand it, sock
haavardm
2015/04/20 13:03:48
I removed the compare function since list is now u
mmenke
2015/04/20 14:49:16
I was thinking SSL sockets, where more is needed a
|
| + }; |
| + |
| protected: |
| RequestPriority priority() const { return priority_; } |
| void SetSocket(scoped_ptr<StreamSocket> socket); |
| @@ -450,7 +458,10 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper |
| void DecrementActiveSocketCount() { active_socket_count_--; } |
| int unassigned_job_count() const { return unassigned_job_count_; } |
| - const std::set<ConnectJob*>& jobs() const { return jobs_; } |
| + const std::set<ConnectJob*, ConnectJob::CompareJobConnectStartTime>& jobs() |
| + const { |
| + return jobs_; |
| + } |
| const std::list<IdleSocket>& idle_sockets() const { return idle_sockets_; } |
| int active_socket_count() const { return active_socket_count_; } |
| std::list<IdleSocket>* mutable_idle_sockets() { return &idle_sockets_; } |
| @@ -479,7 +490,7 @@ class NET_EXPORT_PRIVATE ClientSocketPoolBaseHelper |
| size_t unassigned_job_count_; |
| std::list<IdleSocket> idle_sockets_; |
| - std::set<ConnectJob*> jobs_; |
| + std::set<ConnectJob*, ConnectJob::CompareJobConnectStartTime> jobs_; |
| RequestQueue pending_requests_; |
| int active_socket_count_; // number of active sockets used by clients |
| // A timer for when to start the backup job. |