Index: base/task_scheduler/scheduler_service_thread.cc |
diff --git a/base/task_scheduler/scheduler_service_thread.cc b/base/task_scheduler/scheduler_service_thread.cc |
deleted file mode 100644 |
index e592907e4474e2f74bf2ade2224c0d9e8ebea70e..0000000000000000000000000000000000000000 |
--- a/base/task_scheduler/scheduler_service_thread.cc |
+++ /dev/null |
@@ -1,102 +0,0 @@ |
-// Copyright 2016 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. |
- |
-#include "base/task_scheduler/scheduler_service_thread.h" |
- |
-#include <utility> |
- |
-#include "base/logging.h" |
-#include "base/memory/ptr_util.h" |
-#include "base/synchronization/waitable_event.h" |
-#include "base/task_scheduler/delayed_task_manager.h" |
-#include "base/task_scheduler/scheduler_worker.h" |
-#include "base/task_scheduler/sequence.h" |
-#include "base/threading/thread_checker.h" |
-#include "base/time/time.h" |
- |
-namespace base { |
-namespace internal { |
-namespace { |
- |
-class ServiceThreadDelegate : public SchedulerWorker::Delegate { |
- public: |
- ServiceThreadDelegate(DelayedTaskManager* delayed_task_manager) |
- : delayed_task_manager_(delayed_task_manager) {} |
- |
- // SchedulerWorker::Delegate: |
- void OnMainEntry(SchedulerWorker* worker, |
- const TimeDelta& detach_duration) override { |
- DCHECK(detach_duration.is_max()); |
- } |
- |
- scoped_refptr<Sequence> GetWork(SchedulerWorker* worker) override { |
- delayed_task_manager_->PostReadyTasks(); |
- return nullptr; |
- } |
- |
- void DidRunTaskWithPriority(TaskPriority task_priority, |
- const TimeDelta& task_latency) override { |
- NOTREACHED() |
- << "GetWork() never returns a sequence so no task should ever run."; |
- } |
- |
- void ReEnqueueSequence(scoped_refptr<Sequence> sequence) override { |
- NOTREACHED() << |
- "GetWork() never returns a sequence so there's nothing to reenqueue."; |
- } |
- |
- TimeDelta GetSleepTimeout() override { |
- const TimeTicks next_time = delayed_task_manager_->GetDelayedRunTime(); |
- if (next_time.is_null()) |
- return TimeDelta::Max(); |
- |
- // For delayed tasks with delays that are really close to each other, it is |
- // possible for the current time to advance beyond the required |
- // GetDelayedWaitTime. Return a minimum of TimeDelta() in the event that |
- // happens. |
- TimeDelta sleep_time = next_time - delayed_task_manager_->Now(); |
- const TimeDelta zero_delta; |
- return sleep_time < zero_delta ? zero_delta : sleep_time; |
- } |
- |
- bool CanDetach(SchedulerWorker* worker) override { |
- return false; |
- } |
- |
- private: |
- DelayedTaskManager* const delayed_task_manager_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ServiceThreadDelegate); |
-}; |
- |
-} // namespace |
- |
-SchedulerServiceThread::~SchedulerServiceThread() = default; |
- |
-// static |
-std::unique_ptr<SchedulerServiceThread> SchedulerServiceThread::Create( |
- TaskTracker* task_tracker, DelayedTaskManager* delayed_task_manager) { |
- std::unique_ptr<SchedulerWorker> worker = SchedulerWorker::Create( |
- ThreadPriority::NORMAL, |
- MakeUnique<ServiceThreadDelegate>(delayed_task_manager), task_tracker, |
- SchedulerWorker::InitialState::ALIVE); |
- if (!worker) |
- return nullptr; |
- |
- return WrapUnique(new SchedulerServiceThread(std::move(worker))); |
-} |
- |
-void SchedulerServiceThread::WakeUp() { |
- worker_->WakeUp(); |
-} |
- |
-void SchedulerServiceThread::JoinForTesting() { |
- worker_->JoinForTesting(); |
-} |
- |
-SchedulerServiceThread::SchedulerServiceThread( |
- std::unique_ptr<SchedulerWorker> worker) : worker_(std::move(worker)) {} |
- |
-} // namespace internal |
-} // namespace base |