| Index: third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc
|
| index 2164f4fda6d9ff79b26491298db7339f77e24c81..a93dca0474ba97202e2b12c32a923b9577e2c5fa 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/child/worker_scheduler_impl.cc
|
| @@ -8,10 +8,8 @@
|
| #include "base/metrics/histogram_macros.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "base/trace_event/trace_event_argument.h"
|
| -#include "platform/Histogram.h"
|
| #include "platform/scheduler/base/time_converter.h"
|
| #include "platform/scheduler/child/scheduler_tqm_delegate.h"
|
| -#include "platform/wtf/PtrUtil.h"
|
| #include "public/platform/scheduler/base/task_queue.h"
|
|
|
| namespace blink {
|
| @@ -38,28 +36,27 @@
|
|
|
| WorkerSchedulerImpl::WorkerSchedulerImpl(
|
| scoped_refptr<SchedulerTqmDelegate> main_task_runner)
|
| - : WorkerScheduler(WTF::MakeUnique<SchedulerHelper>(
|
| - main_task_runner,
|
| - "worker.scheduler",
|
| - TRACE_DISABLED_BY_DEFAULT("worker.scheduler"),
|
| - TRACE_DISABLED_BY_DEFAULT("worker.scheduler.debug"))),
|
| - idle_helper_(helper_.get(),
|
| + : helper_(main_task_runner,
|
| + "worker.scheduler",
|
| + TRACE_DISABLED_BY_DEFAULT("worker.scheduler"),
|
| + TRACE_DISABLED_BY_DEFAULT("worker.scheduler.debug")),
|
| + idle_helper_(&helper_,
|
| this,
|
| "worker.scheduler",
|
| TRACE_DISABLED_BY_DEFAULT("worker.scheduler"),
|
| "WorkerSchedulerIdlePeriod",
|
| base::TimeDelta::FromMilliseconds(300)),
|
| idle_canceled_delayed_task_sweeper_("worker.scheduler",
|
| - helper_.get(),
|
| + &helper_,
|
| idle_helper_.IdleTaskRunner()),
|
| - load_tracker_(helper_->scheduler_tqm_delegate()->NowTicks(),
|
| + load_tracker_(helper_.scheduler_tqm_delegate()->NowTicks(),
|
| base::Bind(&ReportWorkerTaskLoad),
|
| kWorkerThreadLoadTrackerReportingInterval,
|
| kWorkerThreadLoadTrackerWaitingPeriodBeforeReporting) {
|
| initialized_ = false;
|
| - thread_start_time_ = helper_->scheduler_tqm_delegate()->NowTicks();
|
| + thread_start_time_ = helper_.scheduler_tqm_delegate()->NowTicks();
|
| load_tracker_.Resume(thread_start_time_);
|
| - helper_->AddTaskTimeObserver(this);
|
| + helper_.AddTaskTimeObserver(this);
|
| TRACE_EVENT_OBJECT_CREATED_WITH_ID(
|
| TRACE_DISABLED_BY_DEFAULT("worker.scheduler"), "WorkerScheduler", this);
|
| }
|
| @@ -67,7 +64,7 @@
|
| WorkerSchedulerImpl::~WorkerSchedulerImpl() {
|
| TRACE_EVENT_OBJECT_DELETED_WITH_ID(
|
| TRACE_DISABLED_BY_DEFAULT("worker.scheduler"), "WorkerScheduler", this);
|
| - helper_->RemoveTaskTimeObserver(this);
|
| + helper_.RemoveTaskTimeObserver(this);
|
| }
|
|
|
| void WorkerSchedulerImpl::Init() {
|
| @@ -77,7 +74,7 @@
|
|
|
| scoped_refptr<TaskQueue> WorkerSchedulerImpl::DefaultTaskRunner() {
|
| DCHECK(initialized_);
|
| - return helper_->DefaultTaskRunner();
|
| + return helper_.DefaultTaskRunner();
|
| }
|
|
|
| scoped_refptr<SingleThreadIdleTaskRunner>
|
| @@ -99,19 +96,19 @@
|
| void WorkerSchedulerImpl::AddTaskObserver(
|
| base::MessageLoop::TaskObserver* task_observer) {
|
| DCHECK(initialized_);
|
| - helper_->AddTaskObserver(task_observer);
|
| + helper_.AddTaskObserver(task_observer);
|
| }
|
|
|
| void WorkerSchedulerImpl::RemoveTaskObserver(
|
| base::MessageLoop::TaskObserver* task_observer) {
|
| DCHECK(initialized_);
|
| - helper_->RemoveTaskObserver(task_observer);
|
| + helper_.RemoveTaskObserver(task_observer);
|
| }
|
|
|
| void WorkerSchedulerImpl::Shutdown() {
|
| DCHECK(initialized_);
|
| - load_tracker_.RecordIdle(helper_->scheduler_tqm_delegate()->NowTicks());
|
| - base::TimeTicks end_time = helper_->scheduler_tqm_delegate()->NowTicks();
|
| + load_tracker_.RecordIdle(helper_.scheduler_tqm_delegate()->NowTicks());
|
| + base::TimeTicks end_time = helper_.scheduler_tqm_delegate()->NowTicks();
|
| base::TimeDelta delta = end_time - thread_start_time_;
|
|
|
| // The lifetime could be radically different for different workers,
|
| @@ -120,11 +117,11 @@
|
| UMA_HISTOGRAM_CUSTOM_TIMES(
|
| "WorkerThread.Runtime", delta, base::TimeDelta::FromSeconds(1),
|
| base::TimeDelta::FromDays(1), 50 /* bucket count */);
|
| - helper_->Shutdown();
|
| + helper_.Shutdown();
|
| }
|
|
|
| SchedulerHelper* WorkerSchedulerImpl::GetSchedulerHelperForTesting() {
|
| - return helper_.get();
|
| + return &helper_;
|
| }
|
|
|
| bool WorkerSchedulerImpl::CanEnterLongIdlePeriod(base::TimeTicks,
|
| @@ -142,12 +139,6 @@
|
| void WorkerSchedulerImpl::DidProcessTask(TaskQueue* task_queue,
|
| double start_time,
|
| double end_time) {
|
| - DEFINE_THREAD_SAFE_STATIC_LOCAL(
|
| - CustomCountHistogram, task_time_counter,
|
| - new CustomCountHistogram("WorkerThread.Task.Time", 0, 10000000, 50));
|
| - task_time_counter.Count((end_time - start_time) *
|
| - base::Time::kMicrosecondsPerSecond);
|
| -
|
| base::TimeTicks start_time_ticks =
|
| MonotonicTimeInSecondsToTimeTicks(start_time);
|
| base::TimeTicks end_time_ticks = MonotonicTimeInSecondsToTimeTicks(end_time);
|
|
|