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; |
robliao
2016/04/28 17:16:42
Nit: trh should be expanded.
gab
2016/04/28 17:55:08
Done.
|
+ std::unique_ptr<ThreadTaskRunnerHandle> single_thread_trh; |
+ DCHECK(!task->sequenced_task_runner_ref || |
+ !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); |
} |