| Index: chrome/browser/task_manager/sampling/task_group.cc
|
| diff --git a/chrome/browser/task_manager/sampling/task_group.cc b/chrome/browser/task_manager/sampling/task_group.cc
|
| index ce8460050d72812df030d2c1fdee2f683bb1718a..ba4d286110eb553ff1b74f3e20000e8ae14fd93d 100644
|
| --- a/chrome/browser/task_manager/sampling/task_group.cc
|
| +++ b/chrome/browser/task_manager/sampling/task_group.cc
|
| @@ -108,32 +108,33 @@ TaskGroup::TaskGroup(
|
| gpu_memory_has_duplicates_(false),
|
| is_backgrounded_(false),
|
| weak_ptr_factory_(this) {
|
| - scoped_refptr<TaskGroupSampler> sampler(
|
| - new TaskGroupSampler(base::Process::Open(proc_id),
|
| - blocking_pool_runner,
|
| - base::Bind(&TaskGroup::OnCpuRefreshDone,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| - base::Bind(&TaskGroup::OnMemoryUsageRefreshDone,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| - base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| + if (process_id_ != base::kNullProcessId) {
|
| + worker_thread_sampler_ = base::MakeRefCounted<TaskGroupSampler>(
|
| + base::Process::Open(process_id_), blocking_pool_runner,
|
| + base::Bind(&TaskGroup::OnCpuRefreshDone,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| + base::Bind(&TaskGroup::OnMemoryUsageRefreshDone,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| + base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| #if defined(OS_LINUX)
|
| - base::Bind(&TaskGroup::OnOpenFdCountRefreshDone,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| + base::Bind(&TaskGroup::OnOpenFdCountRefreshDone,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| #endif // defined(OS_LINUX)
|
| - base::Bind(&TaskGroup::OnProcessPriorityDone,
|
| - weak_ptr_factory_.GetWeakPtr())));
|
| - worker_thread_sampler_.swap(sampler);
|
| -
|
| - shared_sampler_->RegisterCallbacks(
|
| - process_id_, base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| - base::Bind(&TaskGroup::OnPhysicalMemoryUsageRefreshDone,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| - base::Bind(&TaskGroup::OnStartTimeRefreshDone,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| - base::Bind(&TaskGroup::OnCpuTimeRefreshDone,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| + base::Bind(&TaskGroup::OnProcessPriorityDone,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| +
|
| + shared_sampler_->RegisterCallbacks(
|
| + process_id_,
|
| + base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| + base::Bind(&TaskGroup::OnPhysicalMemoryUsageRefreshDone,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| + base::Bind(&TaskGroup::OnStartTimeRefreshDone,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| + base::Bind(&TaskGroup::OnCpuTimeRefreshDone,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| + }
|
| }
|
|
|
| TaskGroup::~TaskGroup() {
|
| @@ -223,7 +224,8 @@ void TaskGroup::Refresh(const gpu::VideoMemoryUsageStats& gpu_memory_stats,
|
| // 9- Idle Wakeups per second.
|
| // 10- (Linux and ChromeOS only) The number of file descriptors current open.
|
| // 11- Process priority (foreground vs. background).
|
| - worker_thread_sampler_->Refresh(refresh_flags);
|
| + if (worker_thread_sampler_)
|
| + worker_thread_sampler_->Refresh(refresh_flags);
|
| }
|
|
|
| Task* TaskGroup::GetTaskById(TaskId task_id) const {
|
|
|