Chromium Code Reviews| Index: base/task_scheduler/task_scheduler_impl.h |
| diff --git a/base/task_scheduler/task_scheduler_impl.h b/base/task_scheduler/task_scheduler_impl.h |
| index 4907ce2df266e91e6aac6de9df4f213a1fa419dd..1b05baf938a5629675439a022143613253520930 100644 |
| --- a/base/task_scheduler/task_scheduler_impl.h |
| +++ b/base/task_scheduler/task_scheduler_impl.h |
| @@ -12,6 +12,7 @@ |
| #include "base/callback.h" |
| #include "base/logging.h" |
| #include "base/macros.h" |
| +#include "base/memory/ptr_util.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/strings/string_piece.h" |
| #include "base/synchronization/atomic_flag.h" |
| @@ -38,8 +39,19 @@ namespace internal { |
| // Default TaskScheduler implementation. This class is thread-safe. |
| class BASE_EXPORT TaskSchedulerImpl : public TaskScheduler { |
| public: |
| - // |name| is used to label threads and histograms. |
| - explicit TaskSchedulerImpl(StringPiece name); |
| + using TaskTrackerType = |
|
gab
2017/05/23 15:26:13
TaskTrackerImpl?
Also, move this to an early priv
fdoray
2017/05/25 19:17:34
Done.
|
| +#if defined(OS_POSIX) && !defined(OS_NACL_SFI) |
| + TaskTrackerPosix; |
| +#else |
| + TaskTracker; |
| +#endif |
| + |
| + // |name| is used to label threads and histograms. |task_tracker| can be used |
| + // for tests that need more execution control. By default, you get the |
| + // production TaskTracker. |
|
gab
2017/05/23 15:26:13
By default, the production TaskTracker is used.
fdoray
2017/05/25 19:17:34
Done.
|
| + explicit TaskSchedulerImpl(StringPiece name, |
| + std::unique_ptr<TaskTrackerType> task_tracker = |
| + MakeUnique<TaskTrackerType>()); |
| ~TaskSchedulerImpl() override; |
| // TaskScheduler: |
| @@ -74,11 +86,7 @@ class BASE_EXPORT TaskSchedulerImpl : public TaskScheduler { |
| const std::string name_; |
| Thread service_thread_; |
| -#if defined(OS_POSIX) && !defined(OS_NACL_SFI) |
| - TaskTrackerPosix task_tracker_; |
| -#else |
| - TaskTracker task_tracker_; |
| -#endif |
| + const std::unique_ptr<TaskTrackerType> task_tracker_; |
| DelayedTaskManager delayed_task_manager_; |
| SchedulerSingleThreadTaskRunnerManager single_thread_task_runner_manager_; |