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

Side by Side Diff: base/task_scheduler/post_task.cc

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, 9 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 unified diff | Download patch
« no previous file with comments | « base/task_scheduler/post_task.h ('k') | base/task_scheduler/task_scheduler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/task_scheduler/post_task.h" 5 #include "base/task_scheduler/post_task.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/logging.h"
9 #include "base/task_scheduler/task_scheduler.h" 10 #include "base/task_scheduler/task_scheduler.h"
10 #include "base/threading/post_task_and_reply_impl.h" 11 #include "base/threading/post_task_and_reply_impl.h"
11 12
12 namespace base { 13 namespace base {
13 14
14 namespace { 15 namespace {
15 16
16 class PostTaskAndReplyTaskRunner : public internal::PostTaskAndReplyImpl { 17 class PostTaskAndReplyTaskRunner : public internal::PostTaskAndReplyImpl {
17 public: 18 public:
18 explicit PostTaskAndReplyTaskRunner(const TaskTraits& traits) 19 explicit PostTaskAndReplyTaskRunner(const TaskTraits& traits)
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 void PostTaskWithTraits(const tracked_objects::Location& from_here, 52 void PostTaskWithTraits(const tracked_objects::Location& from_here,
52 const TaskTraits& traits, 53 const TaskTraits& traits,
53 const Closure& task) { 54 const Closure& task) {
54 PostDelayedTaskWithTraits(from_here, traits, task, TimeDelta()); 55 PostDelayedTaskWithTraits(from_here, traits, task, TimeDelta());
55 } 56 }
56 57
57 void PostDelayedTaskWithTraits(const tracked_objects::Location& from_here, 58 void PostDelayedTaskWithTraits(const tracked_objects::Location& from_here,
58 const TaskTraits& traits, 59 const TaskTraits& traits,
59 const Closure& task, 60 const Closure& task,
60 TimeDelta delay) { 61 TimeDelta delay) {
62 DCHECK(TaskScheduler::GetInstance())
63 << "Ref. Prerequisite section of post_task.h";
61 TaskScheduler::GetInstance()->PostDelayedTaskWithTraits(from_here, traits, 64 TaskScheduler::GetInstance()->PostDelayedTaskWithTraits(from_here, traits,
62 task, delay); 65 task, delay);
63 } 66 }
64 67
65 void PostTaskWithTraitsAndReply(const tracked_objects::Location& from_here, 68 void PostTaskWithTraitsAndReply(const tracked_objects::Location& from_here,
66 const TaskTraits& traits, 69 const TaskTraits& traits,
67 Closure task, 70 Closure task,
68 Closure reply) { 71 Closure reply) {
69 PostTaskAndReplyTaskRunner(traits).PostTaskAndReply( 72 PostTaskAndReplyTaskRunner(traits).PostTaskAndReply(
70 from_here, std::move(task), std::move(reply)); 73 from_here, std::move(task), std::move(reply));
71 } 74 }
72 75
73 scoped_refptr<TaskRunner> CreateTaskRunnerWithTraits(const TaskTraits& traits) { 76 scoped_refptr<TaskRunner> CreateTaskRunnerWithTraits(const TaskTraits& traits) {
77 DCHECK(TaskScheduler::GetInstance())
78 << "Ref. Prerequisite section of post_task.h";
74 return TaskScheduler::GetInstance()->CreateTaskRunnerWithTraits(traits); 79 return TaskScheduler::GetInstance()->CreateTaskRunnerWithTraits(traits);
75 } 80 }
76 81
77 scoped_refptr<SequencedTaskRunner> CreateSequencedTaskRunnerWithTraits( 82 scoped_refptr<SequencedTaskRunner> CreateSequencedTaskRunnerWithTraits(
78 const TaskTraits& traits) { 83 const TaskTraits& traits) {
84 DCHECK(TaskScheduler::GetInstance())
85 << "Ref. Prerequisite section of post_task.h";
79 return TaskScheduler::GetInstance()->CreateSequencedTaskRunnerWithTraits( 86 return TaskScheduler::GetInstance()->CreateSequencedTaskRunnerWithTraits(
80 traits); 87 traits);
81 } 88 }
82 89
83 scoped_refptr<SingleThreadTaskRunner> CreateSingleThreadTaskRunnerWithTraits( 90 scoped_refptr<SingleThreadTaskRunner> CreateSingleThreadTaskRunnerWithTraits(
84 const TaskTraits& traits) { 91 const TaskTraits& traits) {
92 DCHECK(TaskScheduler::GetInstance())
93 << "Ref. Prerequisite section of post_task.h";
85 return TaskScheduler::GetInstance()->CreateSingleThreadTaskRunnerWithTraits( 94 return TaskScheduler::GetInstance()->CreateSingleThreadTaskRunnerWithTraits(
86 traits); 95 traits);
87 } 96 }
88 97
89 } // namespace base 98 } // namespace base
OLDNEW
« no previous file with comments | « base/task_scheduler/post_task.h ('k') | base/task_scheduler/task_scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698