Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(965)

Unified Diff: net/dns/host_resolver_impl.cc

Issue 1137433003: Encouraging ThreadTaskRunnerHandle usage in net/dns module (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed build failure Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | net/dns/serial_worker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/dns/host_resolver_impl.cc
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
index cbda457e6b4169431d5442f8fd144b3d1ca6c155..4e8334716ca7c6d3833f60a0ad563c2f0a12b065 100644
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -21,14 +21,15 @@
#include "base/compiler_specific.h"
#include "base/debug/debugger.h"
#include "base/debug/stack_trace.h"
-#include "base/message_loop/message_loop_proxy.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/sparse_histogram.h"
#include "base/profiler/scoped_tracker.h"
+#include "base/single_thread_task_runner.h"
#include "base/stl_util.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/thread_task_runner_handle.h"
#include "base/threading/worker_pool.h"
#include "base/time/time.h"
#include "base/values.h"
@@ -598,7 +599,7 @@ class HostResolverImpl::ProcTask
: key_(key),
params_(params),
callback_(callback),
- origin_loop_(base::MessageLoopProxy::current()),
+ task_runner_(base::ThreadTaskRunnerHandle::Get()),
attempt_number_(0),
completed_attempt_number_(0),
completed_attempt_error_(ERR_UNEXPECTED),
@@ -612,7 +613,7 @@ class HostResolverImpl::ProcTask
}
void Start() {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
net_log_.BeginEvent(NetLog::TYPE_HOST_RESOLVER_IMPL_PROC_TASK);
StartLookupAttempt();
}
@@ -621,7 +622,7 @@ class HostResolverImpl::ProcTask
// attempts running on worker threads will continue running. Only once all the
// attempts complete will the final reference to this ProcTask be released.
void Cancel() {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
if (was_canceled() || was_completed())
return;
@@ -631,17 +632,17 @@ class HostResolverImpl::ProcTask
}
void set_had_non_speculative_request() {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
had_non_speculative_request_ = true;
}
bool was_canceled() const {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
return callback_.is_null();
}
bool was_completed() const {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
return completed_attempt_number_ > 0;
}
@@ -650,7 +651,7 @@ class HostResolverImpl::ProcTask
~ProcTask() {}
void StartLookupAttempt() {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
base::TimeTicks start_time = base::TimeTicks::Now();
++attempt_number_;
// Dispatch the lookup attempt to a worker thread.
@@ -663,10 +664,14 @@ class HostResolverImpl::ProcTask
// Since we could be running within Resolve() right now, we can't just
// call OnLookupComplete(). Instead we must wait until Resolve() has
// returned (IO_PENDING).
- origin_loop_->PostTask(
- FROM_HERE,
- base::Bind(&ProcTask::OnLookupComplete, this, AddressList(),
- start_time, attempt_number_, ERR_UNEXPECTED, 0));
+ task_runner_->PostTask(FROM_HERE,
+ base::Bind(&ProcTask::OnLookupComplete,
+ this,
+ AddressList(),
+ start_time,
+ attempt_number_,
+ ERR_UNEXPECTED,
+ 0));
return;
}
@@ -678,7 +683,7 @@ class HostResolverImpl::ProcTask
// will start a new attempt on a different worker thread if none of our
// outstanding attempts have completed yet.
if (attempt_number_ <= params_.max_retry_attempts) {
- origin_loop_->PostDelayedTask(
+ task_runner_->PostDelayedTask(
FROM_HERE,
base::Bind(&ProcTask::RetryIfNotComplete, this),
params_.unresponsive_delay);
@@ -712,15 +717,20 @@ class HostResolverImpl::ProcTask
}
}
- origin_loop_->PostTask(
- FROM_HERE,
- base::Bind(&ProcTask::OnLookupComplete, this, results, start_time,
- attempt_number, error, os_error));
+ task_runner_->PostTask(FROM_HERE,
+ base::Bind(&ProcTask::OnLookupComplete,
+ this,
+ results,
+ start_time,
+ attempt_number,
+ error,
+ os_error));
}
- // Makes next attempt if DoLookup() has not finished (runs on origin thread).
+ // Makes next attempt if DoLookup() has not finished (runs on task runner
+ // thread).
void RetryIfNotComplete() {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
if (was_completed() || was_canceled())
return;
@@ -729,13 +739,13 @@ class HostResolverImpl::ProcTask
StartLookupAttempt();
}
- // Callback for when DoLookup() completes (runs on origin thread).
+ // Callback for when DoLookup() completes (runs on task runner thread).
void OnLookupComplete(const AddressList& results,
const base::TimeTicks& start_time,
const uint32 attempt_number,
int error,
const int os_error) {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
// If results are empty, we should return an error.
bool empty_list_on_ok = (error == OK && results.empty());
UMA_HISTOGRAM_BOOLEAN("DNS.EmptyAddressListAndNoError", empty_list_on_ok);
@@ -802,7 +812,7 @@ class HostResolverImpl::ProcTask
void RecordPerformanceHistograms(const base::TimeTicks& start_time,
const int error,
const int os_error) const {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
enum Category { // Used in UMA_HISTOGRAM_ENUMERATION.
RESOLVE_SUCCESS,
RESOLVE_FAIL,
@@ -869,7 +879,7 @@ class HostResolverImpl::ProcTask
const uint32 attempt_number,
const int error,
const int os_error) const {
- DCHECK(origin_loop_->BelongsToCurrentThread());
+ DCHECK(task_runner_->BelongsToCurrentThread());
bool first_attempt_to_complete =
completed_attempt_number_ == attempt_number;
bool is_first_attempt = (attempt_number == 1);
@@ -916,7 +926,7 @@ class HostResolverImpl::ProcTask
DNS_HISTOGRAM("DNS.AttemptFailDuration", duration);
}
- // Set on the origin thread, read on the worker thread.
+ // Set on the task runner thread, read on the worker thread.
Key key_;
// Holds an owning reference to the HostResolverProc that we are going to use.
@@ -928,8 +938,8 @@ class HostResolverImpl::ProcTask
// The listener to the results of this ProcTask.
Callback callback_;
- // Used to post ourselves onto the origin thread.
- scoped_refptr<base::MessageLoopProxy> origin_loop_;
+ // Used to post ourselves onto the task runner thread.
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
// Keeps track of the number of attempts we have made so far to resolve the
// host. Whenever we start an attempt to resolve the host, we increase this
@@ -991,7 +1001,7 @@ class HostResolverImpl::LoopbackProbeJob {
resolver_->SetHaveOnlyLoopbackAddresses(result_);
}
- // Used/set only on origin thread.
+ // Used/set only on task runner thread.
base::WeakPtr<HostResolverImpl> resolver_;
bool result_;
« no previous file with comments | « no previous file | net/dns/serial_worker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698