| 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..1e35639958b62aa6aced77ca1bb71fbb028f70dc 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 TaskTrackerImpl =
|
| +#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, the production
|
| + // TaskTracker is used.
|
| + explicit TaskSchedulerImpl(StringPiece name,
|
| + std::unique_ptr<TaskTrackerImpl> task_tracker =
|
| + MakeUnique<TaskTrackerImpl>());
|
| ~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<TaskTrackerImpl> task_tracker_;
|
| DelayedTaskManager delayed_task_manager_;
|
| SchedulerSingleThreadTaskRunnerManager single_thread_task_runner_manager_;
|
|
|
|
|