Index: net/base/host_resolver_impl.cc |
=================================================================== |
--- net/base/host_resolver_impl.cc (revision 46824) |
+++ net/base/host_resolver_impl.cc (working copy) |
@@ -155,70 +155,24 @@ |
//----------------------------------------------------------------------------- |
-// Threadsafe log. |
-class HostResolverImpl::RequestsTrace |
- : public base::RefCountedThreadSafe<HostResolverImpl::RequestsTrace> { |
- public: |
- RequestsTrace() {} |
- |
- void Add(const std::string& msg) { |
- CapturingNetLog::Entry entry(NetLog::TYPE_TODO_STRING, |
- base::TimeTicks::Now(), |
- NetLog::Source(), |
- NetLog::PHASE_NONE, |
- new NetLogStringParameter("todo", msg)); |
- AutoLock l(lock_); |
- entries_.push_back(entry); |
- } |
- |
- void Get(CapturingNetLog::EntryList* entries) { |
- AutoLock l(lock_); |
- *entries = entries_; |
- } |
- |
- void Clear() { |
- AutoLock l(lock_); |
- entries_.clear(); |
- } |
- |
- private: |
- Lock lock_; |
- CapturingNetLog::EntryList entries_; |
-}; |
- |
-//----------------------------------------------------------------------------- |
- |
// This class represents a request to the worker pool for a "getaddrinfo()" |
// call. |
class HostResolverImpl::Job |
: public base::RefCountedThreadSafe<HostResolverImpl::Job> { |
public: |
- Job(int id, HostResolverImpl* resolver, const Key& key, |
- RequestsTrace* requests_trace) |
+ Job(int id, HostResolverImpl* resolver, const Key& key) |
: id_(id), |
key_(key), |
resolver_(resolver), |
origin_loop_(MessageLoop::current()), |
resolver_proc_(resolver->effective_resolver_proc()), |
- requests_trace_(requests_trace), |
error_(OK), |
had_non_speculative_request_(false) { |
- if (requests_trace_) { |
- requests_trace_->Add(StringPrintf( |
- "Created job j%d for {hostname='%s', address_family=%d}", |
- id_, key.hostname.c_str(), |
- static_cast<int>(key.address_family))); |
- } |
} |
// Attaches a request to this job. The job takes ownership of |req| and will |
// take care to delete it. |
void AddRequest(Request* req) { |
- if (requests_trace_) { |
- requests_trace_->Add(StringPrintf( |
- "Attached request r%d to job j%d", req->id(), id_)); |
- } |
- |
req->set_job(this); |
requests_.push_back(req); |
@@ -228,9 +182,6 @@ |
// Called from origin loop. |
void Start() { |
- if (requests_trace_) |
- requests_trace_->Add(StringPrintf("Starting job j%d", id_)); |
- |
start_time_ = base::TimeTicks::Now(); |
// Dispatch the job to a worker thread. |
@@ -252,9 +203,6 @@ |
HostResolver* resolver = resolver_; |
resolver_ = NULL; |
- if (requests_trace_) |
- requests_trace_->Add(StringPrintf("Cancelled job j%d", id_)); |
- |
// Mark the job as cancelled, so when worker thread completes it will |
// not try to post completion to origin loop. |
{ |
@@ -320,11 +268,6 @@ |
// objects (like MessageLoops, Singletons, etc). During shutdown these objects |
// may no longer exist. |
void DoLookup() { |
- if (requests_trace_) { |
- requests_trace_->Add(StringPrintf( |
- "[resolver thread] Running job j%d", id_)); |
- } |
- |
// Running on the worker thread |
error_ = ResolveAddrInfo(resolver_proc_, |
key_.hostname, |
@@ -332,11 +275,6 @@ |
key_.host_resolver_flags, |
&results_); |
- if (requests_trace_) { |
- requests_trace_->Add(StringPrintf( |
- "[resolver thread] Completed job j%d", id_)); |
- } |
- |
// The origin loop could go away while we are trying to post to it, so we |
// need to call its PostTask method inside a lock. See ~HostResolver. |
{ |
@@ -358,13 +296,6 @@ |
base::TimeDelta job_duration = base::TimeTicks::Now() - start_time_; |
- if (requests_trace_) { |
- requests_trace_->Add(StringPrintf( |
- "Completing job j%d (took %d milliseconds)", |
- id_, |
- static_cast<int>(job_duration.InMilliseconds()))); |
- } |
- |
if (had_non_speculative_request_) { |
// TODO(eroman): Add histogram for job times of non-speculative |
// requests. |
@@ -403,9 +334,6 @@ |
// reference ensures that it remains valid until we are done. |
scoped_refptr<HostResolverProc> resolver_proc_; |
- // Thread safe log to write details into, or NULL. |
- scoped_refptr<RequestsTrace> requests_trace_; |
- |
// Assigned on the worker thread, read on the origin thread. |
int error_; |
@@ -868,72 +796,6 @@ |
DiscardIPv6ProbeJob(); |
} |
-void HostResolverImpl::ClearRequestsTrace() { |
- if (requests_trace_) |
- requests_trace_->Clear(); |
-} |
- |
-void HostResolverImpl::EnableRequestsTracing(bool enable) { |
- requests_trace_ = enable ? new RequestsTrace : NULL; |
- if (enable) { |
- // Print the state of the world when logging was started. |
- requests_trace_->Add("Enabled tracing"); |
- requests_trace_->Add(StringPrintf( |
- "Current num outstanding jobs: %d", |
- static_cast<int>(jobs_.size()))); |
- |
- // Dump all of the outstanding jobs. |
- if (!jobs_.empty()) { |
- for (JobMap::iterator job_it = jobs_.begin(); |
- job_it != jobs_.end(); ++job_it) { |
- Job* job = job_it->second; |
- |
- requests_trace_->Add(StringPrintf( |
- "Outstanding job j%d for {host='%s', address_family=%d}, " |
- "which was started at t=%d", |
- job->id(), |
- job->key().hostname.c_str(), |
- static_cast<int>(job->key().address_family), |
- static_cast<int>((job->start_time() - base::TimeTicks()) |
- .InMilliseconds()))); |
- |
- // Dump all of the requests attached to this job. |
- for (RequestsList::const_iterator req_it = job->requests().begin(); |
- req_it != job->requests().end(); ++req_it) { |
- Request* req = *req_it; |
- requests_trace_->Add(StringPrintf( |
- " %sOutstanding request r%d is attached to job j%d " |
- "{priority=%d, speculative=%d, referrer='%s'}", |
- req->was_cancelled() ? "[CANCELLED] " : "", |
- req->id(), |
- job->id(), |
- static_cast<int>(req->info().priority()), |
- static_cast<int>(req->info().is_speculative()), |
- req->info().referrer().spec().c_str())); |
- } |
- } |
- } |
- |
- size_t total = 0u; |
- for (size_t i = 0; i < arraysize(job_pools_); ++i) |
- total += job_pools_[i]->GetNumPendingRequests(); |
- |
- requests_trace_->Add(StringPrintf( |
- "Number of queued requests: %d", static_cast<int>(total))); |
- } |
-} |
- |
-bool HostResolverImpl::IsRequestsTracingEnabled() const { |
- return !!requests_trace_; // Cast to bool. |
-} |
- |
-bool HostResolverImpl::GetRequestsTrace(CapturingNetLog::EntryList* entries) { |
- if (!requests_trace_) |
- return false; |
- requests_trace_->Get(entries); |
- return true; |
-} |
- |
void HostResolverImpl::SetPoolConstraints(JobPoolIndex pool_index, |
size_t max_outstanding_jobs, |
size_t max_pending_requests) { |
@@ -1014,20 +876,6 @@ |
const RequestInfo& info) { |
net_log.BeginEvent(NetLog::TYPE_HOST_RESOLVER_IMPL, NULL); |
- if (requests_trace_) { |
- requests_trace_->Add(StringPrintf( |
- "Received request r%d for {hostname='%s', port=%d, priority=%d, " |
- "speculative=%d, address_family=%d, allow_cached=%d, referrer='%s'}", |
- request_id, |
- info.hostname().c_str(), |
- info.port(), |
- static_cast<int>(info.priority()), |
- static_cast<int>(info.is_speculative()), |
- static_cast<int>(info.address_family()), |
- static_cast<int>(info.allow_cached_response()), |
- info.referrer().spec().c_str())); |
- } |
- |
// Notify the observers of the start. |
if (!observers_.empty()) { |
net_log.BeginEvent(NetLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONSTART, NULL); |
@@ -1045,11 +893,6 @@ |
int request_id, |
const RequestInfo& info, |
int error) { |
- if (requests_trace_) { |
- requests_trace_->Add(StringPrintf( |
- "Finished request r%d with error=%d", request_id, error)); |
- } |
- |
// Notify the observers of the completion. |
if (!observers_.empty()) { |
net_log.BeginEvent(NetLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONFINISH, NULL); |
@@ -1071,9 +914,6 @@ |
const RequestInfo& info) { |
net_log.AddEvent(NetLog::TYPE_CANCELLED, NULL); |
- if (requests_trace_) |
- requests_trace_->Add(StringPrintf("Cancelled request r%d", request_id)); |
- |
// Notify the observers of the cancellation. |
if (!observers_.empty()) { |
net_log.BeginEvent(NetLog::TYPE_HOST_RESOLVER_IMPL_OBSERVER_ONCANCEL, NULL); |
@@ -1176,7 +1016,7 @@ |
HostResolverImpl::Job* HostResolverImpl::CreateAndStartJob(Request* req) { |
DCHECK(CanCreateJobForPool(*GetPoolForRequest(req))); |
Key key = GetEffectiveKeyForRequest(req->info()); |
- scoped_refptr<Job> job = new Job(next_job_id_++, this, key, requests_trace_); |
+ scoped_refptr<Job> job = new Job(next_job_id_++, this, key); |
job->AddRequest(req); |
AddOutstandingJob(job); |
job->Start(); |
@@ -1184,9 +1024,6 @@ |
} |
int HostResolverImpl::EnqueueRequest(JobPool* pool, Request* req) { |
- if (requests_trace_) |
- requests_trace_->Add(StringPrintf("Queued request r%d", req->id())); |
- |
scoped_ptr<Request> req_evicted_from_queue( |
pool->InsertPendingRequest(req)); |
@@ -1195,9 +1032,6 @@ |
Request* r = req_evicted_from_queue.get(); |
int error = ERR_HOST_RESOLVER_QUEUE_TOO_LARGE; |
- if (requests_trace_) |
- requests_trace_->Add(StringPrintf("Evicted request r%d", r->id())); |
- |
OnFinishRequest(r->net_log(), r->id(), r->info(), error); |
if (r == req) |