Refactor how ClientSocketPoolBaseHelper avoids re-entrancy.
Specifically, we defer asynchronous user callbacks to tasks.
BUG=48861
Review URL: http://codereview.chromium.org/2994003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52509 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/socket/client_socket_pool_base_unittest.cc b/net/socket/client_socket_pool_base_unittest.cc
index 53063ba..9686794 100644
--- a/net/socket/client_socket_pool_base_unittest.cc
+++ b/net/socket/client_socket_pool_base_unittest.cc
@@ -370,7 +370,7 @@
virtual void CancelRequest(
const std::string& group_name,
- const ClientSocketHandle* handle) {
+ ClientSocketHandle* handle) {
base_.CancelRequest(group_name, handle);
}
@@ -521,8 +521,10 @@
// to delete |requests_| because the pool is reference counted and requests
// keep reference to it.
// TODO(willchan): Remove this part when late binding becomes the default.
+ TestClientSocketPool* pool = pool_.get();
pool_ = NULL;
requests_.reset();
+ pool = NULL;
ClientSocketPoolTest::TearDown();
}
@@ -934,11 +936,6 @@
// Cancel the stalled request.
handles[0].Reset();
- // Wait for the pending job to be guaranteed to complete.
- PlatformThread::Sleep(TestConnectJob::kPendingConnectDelay * 2);
-
- MessageLoop::current()->RunAllPending();
-
// Now we should have a connect job.
EXPECT_EQ(1, pool_->NumConnectJobsInGroup("foo"));