This better supports existing uses of single threaded work today (e.g. Main thread, blink thread).
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f77c24b4773e3c145e68cd923c6ec673e47cb8cd commit f77c24b4773e3c145e68cd923c6ec673e47cb8cd Author: robliao <robliao@chromium.org> Date: Fri Feb 10 19:56:01 2017 Refactor DelayedTaskManager to be Agnostic to Task Sources The upcoming work for one dedicated thread per SingleTaskTaskRunner needs the services from the DelayedTaskManager to process tasks. This change makes DelayedTaskManager agnostic to the task source while allowing for a central place to set policy on delayed tasks especially in the face of different task sources. Reference Change: https://codereview.chromium.org/2686593003/ BUG= 684080 Review-Url: https://codereview.chromium.org/2690483002 Cr-Commit-Position: refs/heads/master@{#449707} [modify] https://crrev.com/f77c24b4773e3c145e68cd923c6ec673e47cb8cd/base/task_scheduler/delayed_task_manager.cc [modify] https://crrev.com/f77c24b4773e3c145e68cd923c6ec673e47cb8cd/base/task_scheduler/delayed_task_manager.h [modify] https://crrev.com/f77c24b4773e3c145e68cd923c6ec673e47cb8cd/base/task_scheduler/delayed_task_manager_unittest.cc [modify] https://crrev.com/f77c24b4773e3c145e68cd923c6ec673e47cb8cd/base/task_scheduler/scheduler_worker_pool_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bcc569081c8c449f98da7d1130bc2bcf5efecf7d commit bcc569081c8c449f98da7d1130bc2bcf5efecf7d Author: robliao <robliao@chromium.org> Date: Fri Feb 24 00:21:02 2017 SchedulerWorker Refcounting for Destruction in Production The upcoming work for one dedicated thread per SingleTaskTaskRunner requires the ability to clean up SchedulerWorker. Additionally dynamically ramping up and down SchedulerWorkers at runtime may also utilize this work. This change introduces refcounting and SchedulerWorker::RequestThreadTermination() so that a caller may safely release a SchedulerWorker at runtime. The expected usage is scoped_refptr<SchedulerWorker> worker_ = /* Existing Worker */ worker_->Cleanup(); worker_ = nullptr; Done! Reference Change: https://codereview.chromium.org/2686593003/ BUG= 684080 Review-Url: https://codereview.chromium.org/2692863012 Cr-Commit-Position: refs/heads/master@{#452686} [modify] https://crrev.com/bcc569081c8c449f98da7d1130bc2bcf5efecf7d/base/task_scheduler/scheduler_worker.cc [modify] https://crrev.com/bcc569081c8c449f98da7d1130bc2bcf5efecf7d/base/task_scheduler/scheduler_worker.h [modify] https://crrev.com/bcc569081c8c449f98da7d1130bc2bcf5efecf7d/base/task_scheduler/scheduler_worker_pool_impl.cc [modify] https://crrev.com/bcc569081c8c449f98da7d1130bc2bcf5efecf7d/base/task_scheduler/scheduler_worker_pool_impl.h [modify] https://crrev.com/bcc569081c8c449f98da7d1130bc2bcf5efecf7d/base/task_scheduler/scheduler_worker_stack_unittest.cc [modify] https://crrev.com/bcc569081c8c449f98da7d1130bc2bcf5efecf7d/base/task_scheduler/scheduler_worker_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fc203f52e046a8d82e053525d764671f7128f3d4 commit fc203f52e046a8d82e053525d764671f7128f3d4 Author: robliao <robliao@chromium.org> Date: Mon Feb 27 06:47:16 2017 Introduce SchedulerSingleThreadTaskRunnerManager This component provides one dedicated thread per SingleThreadTaskRunner. Reference Change: https://codereview.chromium.org/2686593003/ BUG= 684080 , 694823 Review-Url: https://codereview.chromium.org/2698843006 Cr-Commit-Position: refs/heads/master@{#453162} [modify] https://crrev.com/fc203f52e046a8d82e053525d764671f7128f3d4/base/BUILD.gn [add] https://crrev.com/fc203f52e046a8d82e053525d764671f7128f3d4/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc [add] https://crrev.com/fc203f52e046a8d82e053525d764671f7128f3d4/base/task_scheduler/scheduler_single_thread_task_runner_manager.h [add] https://crrev.com/fc203f52e046a8d82e053525d764671f7128f3d4/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc [modify] https://crrev.com/fc203f52e046a8d82e053525d764671f7128f3d4/base/task_scheduler/scheduler_worker_pool_impl.cc [modify] https://crrev.com/fc203f52e046a8d82e053525d764671f7128f3d4/base/task_scheduler/scheduler_worker_pool_params.cc [modify] https://crrev.com/fc203f52e046a8d82e053525d764671f7128f3d4/base/task_scheduler/scheduler_worker_pool_params.h [modify] https://crrev.com/fc203f52e046a8d82e053525d764671f7128f3d4/base/task_scheduler/task_scheduler_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/78d29d2505c18c37f2869bcca08cf18701892655 commit 78d29d2505c18c37f2869bcca08cf18701892655 Author: twellington <twellington@chromium.org> Date: Thu Mar 02 19:45:23 2017 Revert of Introduce SchedulerSingleThreadTaskRunnerManager (patchset #7 id:280001 of https://codereview.chromium.org/2698843006/ ) Reason for revert: TaskSchedulerSingleThreadTaskRunnerManagerTest.PrioritySetCorrectly is failing on numerous bots. See crbug.com/697697 Original issue's description: > Introduce SchedulerSingleThreadTaskRunnerManager > > This component provides one dedicated thread per > SingleThreadTaskRunner. > > Reference Change: > https://codereview.chromium.org/2686593003/ > > BUG= 684080 , 694823 > > Review-Url: https://codereview.chromium.org/2698843006 > Cr-Commit-Position: refs/heads/master@{#453162} > Committed: https://chromium.googlesource.com/chromium/src/+/fc203f52e046a8d82e053525d764671f7128f3d4 TBR=gab@chromium.org,fdoray@chromium.org,robliao@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= 684080 , 694823 , 697697 Review-Url: https://codereview.chromium.org/2722113006 Cr-Commit-Position: refs/heads/master@{#454346} [modify] https://crrev.com/78d29d2505c18c37f2869bcca08cf18701892655/base/BUILD.gn [delete] https://crrev.com/8dd0cb3cdf573d6ea0021f2962ef8116c9e80857/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc [delete] https://crrev.com/8dd0cb3cdf573d6ea0021f2962ef8116c9e80857/base/task_scheduler/scheduler_single_thread_task_runner_manager.h [delete] https://crrev.com/8dd0cb3cdf573d6ea0021f2962ef8116c9e80857/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc [modify] https://crrev.com/78d29d2505c18c37f2869bcca08cf18701892655/base/task_scheduler/scheduler_worker_pool_impl.cc [modify] https://crrev.com/78d29d2505c18c37f2869bcca08cf18701892655/base/task_scheduler/scheduler_worker_pool_params.cc [modify] https://crrev.com/78d29d2505c18c37f2869bcca08cf18701892655/base/task_scheduler/scheduler_worker_pool_params.h [modify] https://crrev.com/78d29d2505c18c37f2869bcca08cf18701892655/base/task_scheduler/task_scheduler_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cee951ecb8aff83a6eb0ff734241813f735e8c45 commit cee951ecb8aff83a6eb0ff734241813f735e8c45 Author: robliao <robliao@chromium.org> Date: Fri Mar 10 20:21:29 2017 Introduce SchedulerSingleThreadTaskRunnerManager This component provides one dedicated thread per SingleThreadTaskRunner. Reference Change: https://codereview.chromium.org/2686593003/ BUG= 684080 , 694823 , 697697 Review-Url: https://codereview.chromium.org/2698843006 Cr-Original-Commit-Position: refs/heads/master@{#453162} Committed: https://chromium.googlesource.com/chromium/src/+/fc203f52e046a8d82e053525d764671f7128f3d4 Review-Url: https://codereview.chromium.org/2698843006 Cr-Commit-Position: refs/heads/master@{#456148} [modify] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/BUILD.gn [add] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc [add] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/scheduler_single_thread_task_runner_manager.h [add] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc [modify] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/scheduler_worker.cc [modify] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/scheduler_worker.h [modify] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/scheduler_worker_pool_impl.cc [modify] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/scheduler_worker_pool_params.cc [modify] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/scheduler_worker_pool_params.h [modify] https://crrev.com/cee951ecb8aff83a6eb0ff734241813f735e8c45/base/task_scheduler/task_scheduler_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/29611dbb462c16291460e4c14f8de7a5026c6cee commit 29611dbb462c16291460e4c14f8de7a5026c6cee Author: robliao <robliao@chromium.org> Date: Mon Mar 13 18:30:20 2017 Redirect SingleThreadTaskRunner creation to the SchedulerSingleThreadTaskRunnerManager Reference Change: https://codereview.chromium.org/2686593003/ BUG= 684080 Review-Url: https://codereview.chromium.org/2700253002 Cr-Commit-Position: refs/heads/master@{#456438} [modify] https://crrev.com/29611dbb462c16291460e4c14f8de7a5026c6cee/base/task_scheduler/task_scheduler_impl.cc [modify] https://crrev.com/29611dbb462c16291460e4c14f8de7a5026c6cee/base/task_scheduler/task_scheduler_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1bffa9cec8d71756a35cc92c1d753574c26b6f07 commit 1bffa9cec8d71756a35cc92c1d753574c26b6f07 Author: robliao <robliao@chromium.org> Date: Thu Mar 16 17:54:30 2017 Followup Feedback on https://codereview.chromium.org/2726073002/ BUG= 684080 Review-Url: https://codereview.chromium.org/2753443005 Cr-Commit-Position: refs/heads/master@{#457486} [modify] https://crrev.com/1bffa9cec8d71756a35cc92c1d753574c26b6f07/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc [modify] https://crrev.com/1bffa9cec8d71756a35cc92c1d753574c26b6f07/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc
This is available in the build now.
Comment 1 by bugdroid1@chromium.org
, Feb 10 2017