Chromium Code Reviews| Index: base/task_scheduler/task_tracker.cc |
| diff --git a/base/task_scheduler/task_tracker.cc b/base/task_scheduler/task_tracker.cc |
| index c896a9fad9b4f517f0f78499d4df31052668a14a..a168c784687d91ff73aabd2a477d2580af7396ed 100644 |
| --- a/base/task_scheduler/task_tracker.cc |
| +++ b/base/task_scheduler/task_tracker.cc |
| @@ -7,6 +7,8 @@ |
| #include "base/callback.h" |
| #include "base/debug/task_annotator.h" |
| #include "base/metrics/histogram_macros.h" |
| +#include "base/thread_task_runner_handle.h" |
| +#include "base/threading/sequenced_task_runner_handle.h" |
| namespace base { |
| namespace internal { |
| @@ -78,8 +80,23 @@ void TaskTracker::RunTask(const Task* task) { |
| if (!BeforeRunTask(shutdown_behavior)) |
| return; |
| - debug::TaskAnnotator task_annotator; |
| - task_annotator.RunTask(kQueueFunctionName, *task); |
| + { |
| + // Set up TaskRunnerHandle as expected for the scope of the task. |
| + std::unique_ptr<SequencedTaskRunnerHandle> sequenced_trh; |
| + std::unique_ptr<ThreadTaskRunnerHandle> single_thread_trh; |
| + DCHECK(!task->sequenced_task_runner_ref || |
|
robliao
2016/04/28 17:16:42
Alternatively, you can have an else clause below w
gab
2016/04/28 17:55:07
An else clause below would be a
DCHECK(task->sequ
robliao
2016/04/28 18:06:47
Ah yes, my misreading. I think Chrome tends to pre
gab
2016/04/28 18:50:15
I prefer the current one as it reads more as "the
|
| + !task->single_thread_task_runner_ref); |
| + if (task->sequenced_task_runner_ref) { |
| + sequenced_trh.reset( |
| + new SequencedTaskRunnerHandle(task->sequenced_task_runner_ref)); |
| + } else if (task->single_thread_task_runner_ref) { |
| + single_thread_trh.reset( |
| + new ThreadTaskRunnerHandle(task->single_thread_task_runner_ref)); |
| + } |
| + |
| + debug::TaskAnnotator task_annotator; |
| + task_annotator.RunTask(kQueueFunctionName, *task); |
| + } |
| AfterRunTask(shutdown_behavior); |
| } |