diff options
author | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-10 19:43:42 +0000 |
---|---|---|
committer | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-10 19:43:42 +0000 |
commit | 702a12dae9a2ed34362e381df7419c314e4124bf (patch) | |
tree | c9980ba18234d26584d03629600e06996744e7ce /content/browser/profiler_controller_impl.cc | |
parent | c07eef4e772952ab4ad0213b581c97e92f00831e (diff) | |
download | chromium_src-702a12dae9a2ed34362e381df7419c314e4124bf.zip chromium_src-702a12dae9a2ed34362e381df7419c314e4124bf.tar.gz chromium_src-702a12dae9a2ed34362e381df7419c314e4124bf.tar.bz2 |
Propogate status setting for profiler to track parents
[Reland: https://src.chromium.org/viewvc/chrome?view=rev&revision=120789
with minor change to avoid race on status change.]
This allows child processes to track ancestry, and report
it to the browser process.
Parent tracking is only turned on based on an
environment variable.
r=rtenneti
Review URL: https://chromiumcodereview.appspot.com/9363007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121491 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/profiler_controller_impl.cc')
-rw-r--r-- | content/browser/profiler_controller_impl.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/content/browser/profiler_controller_impl.cc b/content/browser/profiler_controller_impl.cc index 1954da8..b3e40e8 100644 --- a/content/browser/profiler_controller_impl.cc +++ b/content/browser/profiler_controller_impl.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -121,14 +121,16 @@ void ProfilerControllerImpl::GetProfilerData(int sequence_number) { sequence_number)); } -void ProfilerControllerImpl::SetProfilerStatusInChildProcesses(bool enable) { +void ProfilerControllerImpl::SetProfilerStatusInChildProcesses( + tracked_objects::ThreadData::Status status) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); for (BrowserChildProcessHostIterator iter; !iter.Done(); ++iter) - iter.Send(new ChildProcessMsg_SetProfilerStatus(enable)); + iter.Send(new ChildProcessMsg_SetProfilerStatus(status)); } -void ProfilerControllerImpl::SetProfilerStatus(bool enable) { +void ProfilerControllerImpl::SetProfilerStatus( + tracked_objects::ThreadData::Status status) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); BrowserThread::PostTask( @@ -136,12 +138,12 @@ void ProfilerControllerImpl::SetProfilerStatus(bool enable) { FROM_HERE, base::Bind(&ProfilerControllerImpl::SetProfilerStatusInChildProcesses, base::Unretained(this), - enable)); + status)); for (content::RenderProcessHost::iterator it( content::RenderProcessHost::AllHostsIterator()); !it.IsAtEnd(); it.Advance()) { - it.GetCurrentValue()->Send(new ChildProcessMsg_SetProfilerStatus(enable)); + it.GetCurrentValue()->Send(new ChildProcessMsg_SetProfilerStatus(status)); } } } // namespace content |