Index: net/socket/client_socket_handle.cc |
=================================================================== |
--- net/socket/client_socket_handle.cc (revision 129292) |
+++ net/socket/client_socket_handle.cc (working copy) |
@@ -17,6 +17,8 @@ |
ClientSocketHandle::ClientSocketHandle() |
: is_initialized_(false), |
+ pool_(NULL), |
+ layered_pool_(NULL), |
is_reused_(false), |
ALLOW_THIS_IN_INITIALIZER_LIST(callback_( |
base::Bind(&ClientSocketHandle::OnIOComplete, |
@@ -52,6 +54,10 @@ |
group_name_.clear(); |
is_reused_ = false; |
user_callback_.Reset(); |
+ if (layered_pool_) { |
+ pool_->RemoveLayeredPool(layered_pool_); |
+ layered_pool_ = NULL; |
+ } |
pool_ = NULL; |
idle_time_ = base::TimeDelta(); |
init_time_ = base::TimeTicks(); |
@@ -75,6 +81,19 @@ |
return pool_->GetLoadState(group_name_, this); |
} |
+bool ClientSocketHandle::IsPoolStalled() const { |
+ return pool_->IsStalled(); |
+} |
+ |
+void ClientSocketHandle::AddLayeredPool(LayeredPool* layered_pool) { |
+ CHECK(layered_pool); |
+ CHECK(!layered_pool_); |
+ if (pool_) { |
+ pool_->AddLayeredPool(layered_pool); |
+ layered_pool_ = layered_pool; |
+ } |
+} |
+ |
void ClientSocketHandle::OnIOComplete(int result) { |
CompletionCallback callback = user_callback_; |
user_callback_.Reset(); |