summaryrefslogtreecommitdiffstats
path: root/net/base/host_resolver_impl.cc
diff options
context:
space:
mode:
authorszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-18 19:02:27 +0000
committerszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-18 19:02:27 +0000
commit8c98d00c19511f317f6e484a0744ab53c1a3c2ad (patch)
tree804aca7b2781f77d1379b865737241c2b9e89a6a /net/base/host_resolver_impl.cc
parenta8160a4123b731f5fe60b0d8c4a8ad68339ea35e (diff)
downloadchromium_src-8c98d00c19511f317f6e484a0744ab53c1a3c2ad.zip
chromium_src-8c98d00c19511f317f6e484a0744ab53c1a3c2ad.tar.gz
chromium_src-8c98d00c19511f317f6e484a0744ab53c1a3c2ad.tar.bz2
[net] Initialize Job priority before the first request is added.
This allows JobQueueTime histogram to properly measure Jobs which don't experience any queueing. BUG=124346 TEST=chrome://histograms Review URL: https://chromiumcodereview.appspot.com/10704253 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147282 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/host_resolver_impl.cc')
-rw-r--r--net/base/host_resolver_impl.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/net/base/host_resolver_impl.cc b/net/base/host_resolver_impl.cc
index 166bda7..b8858ab 100644
--- a/net/base/host_resolver_impl.cc
+++ b/net/base/host_resolver_impl.cc
@@ -362,8 +362,8 @@ void LogCancelRequest(const BoundNetLog& source_net_log,
// Keeps track of the highest priority.
class PriorityTracker {
public:
- PriorityTracker()
- : highest_priority_(IDLE), total_count_(0) {
+ explicit PriorityTracker(RequestPriority initial_priority)
+ : highest_priority_(initial_priority), total_count_(0) {
memset(counts_, 0, sizeof(counts_));
}
@@ -1112,9 +1112,11 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
// request that spawned it.
Job(HostResolverImpl* resolver,
const Key& key,
+ RequestPriority priority,
const BoundNetLog& request_net_log)
: resolver_(resolver->AsWeakPtr()),
key_(key),
+ priority_tracker_(priority),
had_non_speculative_request_(false),
had_dns_config_(false),
dns_task_error_(OK),
@@ -1164,8 +1166,8 @@ class HostResolverImpl::Job : public PrioritizedDispatcher::Job {
}
// Add this job to the dispatcher.
- void Schedule(RequestPriority priority) {
- handle_ = resolver_->dispatcher_.Add(this, priority);
+ void Schedule() {
+ handle_ = resolver_->dispatcher_.Add(this, priority());
}
void AddRequest(scoped_ptr<Request> req) {
@@ -1645,8 +1647,8 @@ int HostResolverImpl::Resolve(const RequestInfo& info,
Job* job;
if (jobit == jobs_.end()) {
// Create new Job.
- job = new Job(this, key, request_net_log);
- job->Schedule(info.priority());
+ job = new Job(this, key, info.priority(), request_net_log);
+ job->Schedule();
// Check for queue overflow.
if (dispatcher_.num_queued_jobs() > max_queued_jobs_) {