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

Unified Diff: chrome/browser/task_manager/sampling/task_group.cc

Issue 2961423002: [TaskManager] Allow a Task to mutate its PID after creation (Closed)
Patch Set: Rework comment. Created 3 years, 5 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
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 {

Powered by Google App Engine
This is Rietveld 408576698