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

Unified Diff: base/task_scheduler/task_scheduler.h

Issue 2709163006: Update TaskScheduler docs to make it more obvious how a TaskScheduler should be put in place. (Closed)
Patch Set: review:fdoray Created 3 years, 10 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
« no previous file with comments | « base/task_scheduler/post_task.cc ('k') | base/task_scheduler/task_traits.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/task_scheduler/task_scheduler.h
diff --git a/base/task_scheduler/task_scheduler.h b/base/task_scheduler/task_scheduler.h
index 296e40bb8dffe3f8c35263b4f299130c9175b54a..da2cb79504e9c2472758abcfce4f5ddd51246686 100644
--- a/base/task_scheduler/task_scheduler.h
+++ b/base/task_scheduler/task_scheduler.h
@@ -108,25 +108,36 @@ class BASE_EXPORT TaskScheduler {
// new TaskScheduler.
// Creates and sets a task scheduler with one worker pool that can have up to
- // |max_threads| threads. CHECKs on failure.
+ // |max_threads| threads. CHECKs on failure. For tests, prefer
+ // base::test::ScopedTaskScheduler (ensures isolation).
static void CreateAndSetSimpleTaskScheduler(int max_threads);
// Creates and sets a task scheduler with custom worker pools. CHECKs on
// failure. |worker_pool_params_vector| describes the worker pools to create.
// |worker_pool_index_for_traits_callback| returns the index in |worker_pools|
- // of the worker pool in which a task with given traits should run.
+ // of the worker pool in which a task with given traits should run. For tests,
+ // prefer base::test::ScopedTaskScheduler (ensures isolation).
static void CreateAndSetDefaultTaskScheduler(
const std::vector<SchedulerWorkerPoolParams>& worker_pool_params_vector,
const WorkerPoolIndexForTraitsCallback&
worker_pool_index_for_traits_callback);
// Registers |task_scheduler| to handle tasks posted through the post_task.h
- // API for this process.
+ // API for this process. For tests, prefer base::test::ScopedTaskScheduler
+ // (ensures isolation).
static void SetInstance(std::unique_ptr<TaskScheduler> task_scheduler);
- // Retrieve the TaskScheduler set via CreateAndSetDefaultTaskScheduler() or
- // SetInstance(). This should be used very rarely; most users of TaskScheduler
- // should use the post_task.h API.
+ // Retrieve the TaskScheduler set via SetInstance() or
+ // CreateAndSet(Simple|Default)TaskScheduler(). This should be used very
+ // rarely; most users of TaskScheduler should use the post_task.h API. In
+ // particular, refrain from doing
+ // if (!TaskScheduler::GetInstance()) {
+ // TaskScheduler::SetInstance(...);
+ // base::PostTask(...);
+ // }
+ // instead make sure to SetInstance() early in one determinstic place in the
+ // process' initialization phase.
+ // In doubt, consult with //base/task_scheduler/OWNERS.
static TaskScheduler* GetInstance();
private:
« no previous file with comments | « base/task_scheduler/post_task.cc ('k') | base/task_scheduler/task_traits.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698