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

Unified Diff: base/task_scheduler/task_tracker.cc

Issue 1911023002: TaskScheduler: Add TaskRunnerHandle support to TaskScheduler tasks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@c1_1876363004_STTR
Patch Set: merge up to r390397 Created 4 years, 8 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/task.h ('k') | base/task_scheduler/task_tracker_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « base/task_scheduler/task.h ('k') | base/task_scheduler/task_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698