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

Unified Diff: base/task_scheduler/scheduler_worker_pool_impl.cc

Issue 2464963002: TaskScheduler: Remove base::ExecutionMode. (Closed)
Patch Set: CR danakj #17 Created 4 years, 1 month 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: base/task_scheduler/scheduler_worker_pool_impl.cc
diff --git a/base/task_scheduler/scheduler_worker_pool_impl.cc b/base/task_scheduler/scheduler_worker_pool_impl.cc
index af6e92ff053b5b5fe6a7af7800bd110114b1791f..c9c72a2ee84f0a167fe677e98b3a0fdfaf24d4be 100644
--- a/base/task_scheduler/scheduler_worker_pool_impl.cc
+++ b/base/task_scheduler/scheduler_worker_pool_impl.cc
@@ -19,6 +19,7 @@
#include "base/sequenced_task_runner.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/stringprintf.h"
+#include "base/task_runner.h"
#include "base/task_scheduler/delayed_task_manager.h"
#include "base/task_scheduler/task_tracker.h"
#include "base/threading/platform_thread.h"
@@ -341,33 +342,29 @@ void SchedulerWorkerPoolImpl::DisallowWorkerDetachmentForTesting() {
}
scoped_refptr<TaskRunner> SchedulerWorkerPoolImpl::CreateTaskRunnerWithTraits(
- const TaskTraits& traits,
- ExecutionMode execution_mode) {
- switch (execution_mode) {
- case ExecutionMode::PARALLEL:
- return make_scoped_refptr(new SchedulerParallelTaskRunner(traits, this));
-
- case ExecutionMode::SEQUENCED:
- return make_scoped_refptr(new SchedulerSequencedTaskRunner(traits, this));
-
- case ExecutionMode::SINGLE_THREADED: {
- // TODO(fdoray): Find a way to take load into account when assigning a
- // SchedulerWorker to a SingleThreadTaskRunner. Also, this code
- // assumes that all SchedulerWorkers are alive. Eventually, we might
- // decide to tear down threads that haven't run tasks for a long time.
- size_t worker_index;
- {
- AutoSchedulerLock auto_lock(next_worker_index_lock_);
- worker_index = next_worker_index_;
- next_worker_index_ = (next_worker_index_ + 1) % workers_.size();
- }
- return make_scoped_refptr(new SchedulerSingleThreadTaskRunner(
- traits, this, workers_[worker_index].get()));
- }
- }
+ const TaskTraits& traits) {
+ return make_scoped_refptr(new SchedulerParallelTaskRunner(traits, this));
+}
- NOTREACHED();
- return nullptr;
+scoped_refptr<SequencedTaskRunner>
+SchedulerWorkerPoolImpl::CreateSequencedTaskRunnerWithTraits(
+ const TaskTraits& traits) {
+ return make_scoped_refptr(new SchedulerSequencedTaskRunner(traits, this));
+}
+
+scoped_refptr<SingleThreadTaskRunner>
+SchedulerWorkerPoolImpl::CreateSingleThreadTaskRunnerWithTraits(
+ const TaskTraits& traits) {
+ // TODO(fdoray): Find a way to take load into account when assigning a
+ // SchedulerWorker to a SingleThreadTaskRunner.
+ size_t worker_index;
+ {
+ AutoSchedulerLock auto_lock(next_worker_index_lock_);
+ worker_index = next_worker_index_;
+ next_worker_index_ = (next_worker_index_ + 1) % workers_.size();
+ }
+ return make_scoped_refptr(new SchedulerSingleThreadTaskRunner(
+ traits, this, workers_[worker_index].get()));
}
void SchedulerWorkerPoolImpl::ReEnqueueSequence(
« no previous file with comments | « base/task_scheduler/scheduler_worker_pool_impl.h ('k') | base/task_scheduler/scheduler_worker_pool_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698