| Index: net/proxy/multi_threaded_proxy_resolver.cc
|
| diff --git a/net/proxy/multi_threaded_proxy_resolver.cc b/net/proxy/multi_threaded_proxy_resolver.cc
|
| index d2c722a61be32aaabbeebe94d15c0d1b9ab81650..785c95a2ceece9c0edbf241273ea0f61e1559a09 100644
|
| --- a/net/proxy/multi_threaded_proxy_resolver.cc
|
| +++ b/net/proxy/multi_threaded_proxy_resolver.cc
|
| @@ -11,11 +11,11 @@
|
| #include "base/bind.h"
|
| #include "base/bind_helpers.h"
|
| #include "base/location.h"
|
| +#include "base/sequence_checker.h"
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/stl_util.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/stringprintf.h"
|
| -#include "base/threading/non_thread_safe.h"
|
| #include "base/threading/thread.h"
|
| #include "base/threading/thread_restrictions.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| @@ -98,8 +98,7 @@ class Executor : public base::RefCountedThreadSafe<Executor> {
|
| };
|
|
|
| class MultiThreadedProxyResolver : public ProxyResolver,
|
| - public Executor::Coordinator,
|
| - public base::NonThreadSafe {
|
| + public Executor::Coordinator {
|
| public:
|
| // Creates an asynchronous ProxyResolver that runs requests on up to
|
| // |max_num_threads|.
|
| @@ -145,6 +144,8 @@ class MultiThreadedProxyResolver : public ProxyResolver,
|
| PendingJobsQueue pending_jobs_;
|
| ExecutorList executors_;
|
| scoped_refptr<ProxyResolverScriptData> script_data_;
|
| +
|
| + SEQUENCE_CHECKER(sequence_checker_);
|
| };
|
|
|
| // Job ---------------------------------------------
|
| @@ -447,7 +448,7 @@ MultiThreadedProxyResolver::MultiThreadedProxyResolver(
|
| }
|
|
|
| MultiThreadedProxyResolver::~MultiThreadedProxyResolver() {
|
| - DCHECK(CalledOnValidThread());
|
| + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
| // We will cancel all outstanding requests.
|
| pending_jobs_.clear();
|
|
|
| @@ -462,7 +463,7 @@ int MultiThreadedProxyResolver::GetProxyForURL(
|
| const CompletionCallback& callback,
|
| std::unique_ptr<Request>* request,
|
| const NetLogWithSource& net_log) {
|
| - DCHECK(CalledOnValidThread());
|
| + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
| DCHECK(!callback.is_null());
|
|
|
| scoped_refptr<GetProxyForURLJob> job(
|
| @@ -495,7 +496,7 @@ int MultiThreadedProxyResolver::GetProxyForURL(
|
| }
|
|
|
| Executor* MultiThreadedProxyResolver::FindIdleExecutor() {
|
| - DCHECK(CalledOnValidThread());
|
| + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
| for (ExecutorList::iterator it = executors_.begin();
|
| it != executors_.end(); ++it) {
|
| Executor* executor = it->get();
|
| @@ -506,7 +507,7 @@ Executor* MultiThreadedProxyResolver::FindIdleExecutor() {
|
| }
|
|
|
| void MultiThreadedProxyResolver::AddNewExecutor() {
|
| - DCHECK(CalledOnValidThread());
|
| + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
| DCHECK_LT(executors_.size(), max_num_threads_);
|
| // The "thread number" is used to give the thread a unique name.
|
| int thread_number = executors_.size();
|
| @@ -517,7 +518,7 @@ void MultiThreadedProxyResolver::AddNewExecutor() {
|
| }
|
|
|
| void MultiThreadedProxyResolver::OnExecutorReady(Executor* executor) {
|
| - DCHECK(CalledOnValidThread());
|
| + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
| while (!pending_jobs_.empty()) {
|
| scoped_refptr<Job> job = pending_jobs_.front();
|
| pending_jobs_.pop_front();
|
|
|