| Index: base/task_scheduler/scheduler_worker_pool_impl.h
|
| diff --git a/base/task_scheduler/scheduler_worker_pool_impl.h b/base/task_scheduler/scheduler_worker_pool_impl.h
|
| index 3205dae7d1a25d6a0034ba11cc6d7f0ca9562f02..9668ab1b95f7847f660832cdc6bded921d45f03a 100644
|
| --- a/base/task_scheduler/scheduler_worker_pool_impl.h
|
| +++ b/base/task_scheduler/scheduler_worker_pool_impl.h
|
| @@ -45,6 +45,10 @@ class BASE_EXPORT SchedulerWorkerPoolImpl : public SchedulerWorkerPool {
|
| // from it.
|
| using ReEnqueueSequenceCallback = Callback<void(scoped_refptr<Sequence>)>;
|
|
|
| + // Callback invoked during destruction of a SingleThreadTaskRunner.
|
| + using UnregisterSingleThreadWorkerPoolCallback =
|
| + Callback<void(const SchedulerWorkerPoolImpl* scheduler_worker_pool)>;
|
| +
|
| // Destroying a SchedulerWorkerPoolImpl returned by Create() is not allowed in
|
| // production; it is always leaked. In tests, it can only be destroyed after
|
| // JoinForTesting() has returned.
|
| @@ -62,6 +66,13 @@ class BASE_EXPORT SchedulerWorkerPoolImpl : public SchedulerWorkerPool {
|
| TaskTracker* task_tracker,
|
| DelayedTaskManager* delayed_task_manager);
|
|
|
| + static std::unique_ptr<SchedulerWorkerPoolImpl> CreateSingleThreadWorkerPool(
|
| + const SchedulerWorkerPoolParams& params,
|
| + UnregisterSingleThreadWorkerPoolCallback
|
| + unregister_single_thread_worker_callback,
|
| + TaskTracker* task_tracker,
|
| + DelayedTaskManager* delayed_task_manager);
|
| +
|
| // SchedulerWorkerPool:
|
| scoped_refptr<TaskRunner> CreateTaskRunnerWithTraits(
|
| const TaskTraits& traits) override;
|
| @@ -109,9 +120,20 @@ class BASE_EXPORT SchedulerWorkerPoolImpl : public SchedulerWorkerPool {
|
| class SchedulerSingleThreadTaskRunner;
|
| class SchedulerWorkerDelegateImpl;
|
|
|
| + static std::unique_ptr<SchedulerWorkerPoolImpl> CreateInternal(
|
| + const SchedulerWorkerPoolParams& params,
|
| + TaskTracker* task_tracker,
|
| + DelayedTaskManager* delayed_task_manager,
|
| + const ReEnqueueSequenceCallback& re_enqueue_sequence_callback,
|
| + UnregisterSingleThreadWorkerPoolCallback
|
| + unregister_single_thread_worker_callback);
|
| +
|
| SchedulerWorkerPoolImpl(const SchedulerWorkerPoolParams& params,
|
| TaskTracker* task_tracker,
|
| - DelayedTaskManager* delayed_task_manager);
|
| + DelayedTaskManager* delayed_task_manager,
|
| + UnregisterSingleThreadWorkerPoolCallback
|
| + unregister_single_thread_worker_pool_callback =
|
| + UnregisterSingleThreadWorkerPoolCallback());
|
|
|
| bool Initialize(
|
| const SchedulerWorkerPoolParams& params,
|
| @@ -199,6 +221,9 @@ class BASE_EXPORT SchedulerWorkerPoolImpl : public SchedulerWorkerPool {
|
| TaskTracker* const task_tracker_;
|
| DelayedTaskManager* const delayed_task_manager_;
|
|
|
| + const UnregisterSingleThreadWorkerPoolCallback
|
| + unregister_single_thread_worker_pool_callback_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(SchedulerWorkerPoolImpl);
|
| };
|
|
|
|
|