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

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: Totally change approach; just let Tasks modify their PIDs. 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..07dbdc45f88ac7aff2004a7a02940698f975bd5c 100644
--- a/chrome/browser/task_manager/sampling/task_group.cc
+++ b/chrome/browser/task_manager/sampling/task_group.cc
@@ -108,26 +108,26 @@ 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);
-
+ base::Bind(&TaskGroup::OnProcessPriorityDone,
+ weak_ptr_factory_.GetWeakPtr()));
+ }
shared_sampler_->RegisterCallbacks(
- process_id_, base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone,
- weak_ptr_factory_.GetWeakPtr()),
+ process_id_,
+ base::Bind(&TaskGroup::OnIdleWakeupsRefreshDone,
+ weak_ptr_factory_.GetWeakPtr()),
base::Bind(&TaskGroup::OnPhysicalMemoryUsageRefreshDone,
weak_ptr_factory_.GetWeakPtr()),
base::Bind(&TaskGroup::OnStartTimeRefreshDone,
@@ -223,7 +223,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