Chromium Code Reviews| 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 1c79923a40057f5db9c2ef2cd9920e4eda4da43e..93bdc92e791bb17e154b2fefe6c047fc213bff69 100644 |
| --- a/net/socket/client_socket_pool_base.cc |
| +++ b/net/socket/client_socket_pool_base.cc |
| @@ -449,7 +449,7 @@ bool ClientSocketPoolBaseHelper::AssignIdleSocketToRequest( |
| // the |idle_socket_it| will be set to the newest used idle socket. |
| for (std::list<IdleSocket>::iterator it = idle_sockets->begin(); |
| it != idle_sockets->end();) { |
| - if (!it->socket->IsConnectedAndIdle()) { |
| + if (!it->IsReusable()) { |
| DecrementIdleCount(); |
| delete it->socket; |
| it = idle_sockets->erase(it); |
| @@ -642,15 +642,19 @@ base::DictionaryValue* ClientSocketPoolBaseHelper::GetInfoAsValue( |
| return dict; |
| } |
| +bool ClientSocketPoolBaseHelper::IdleSocket::IsReusable() const { |
| + if (socket->WasEverUsed()) |
| + return socket->IsConnectedAndIdle(); |
| + return socket->IsConnected(); |
| +} |
| + |
| bool ClientSocketPoolBaseHelper::IdleSocket::ShouldCleanup( |
| base::TimeTicks now, |
| base::TimeDelta timeout) const { |
| bool timed_out = (now - start_time) >= timeout; |
| if (timed_out) |
| return true; |
| - if (socket->WasEverUsed()) |
| - return !socket->IsConnectedAndIdle(); |
| - return !socket->IsConnected(); |
| + return !IsReusable(); |
|
mmenke
2014/02/25 17:01:53
Hmm...So the old extra check here was useless, giv
|
| } |
| void ClientSocketPoolBaseHelper::CleanupIdleSockets(bool force) { |