Many callers can make do with a shared thread. Only a few need dedicated threads.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/94520d71c9197a0f9b0bf4b426e4d676725828d1 commit 94520d71c9197a0f9b0bf4b426e4d676725828d1 Author: robliao <robliao@chromium.org> Date: Fri May 12 12:43:35 2017 Introduce SingleThreadTaskRunnerThreadMode This allows callers creating SingleThreadTaskRunners to specify if the backing thread for the SingleThreadTaskRunner can be shared with other task runners or reserved for the exclusive use of the SingleThreadTaskRunner. BUG= 720058 Review-Url: https://codereview.chromium.org/2873733003 Cr-Commit-Position: refs/heads/master@{#471287} [modify] https://crrev.com/94520d71c9197a0f9b0bf4b426e4d676725828d1/base/BUILD.gn [add] https://crrev.com/94520d71c9197a0f9b0bf4b426e4d676725828d1/base/task_scheduler/single_thread_task_runner_thread_mode.h [modify] https://crrev.com/94520d71c9197a0f9b0bf4b426e4d676725828d1/base/task_scheduler/task_scheduler.h [modify] https://crrev.com/94520d71c9197a0f9b0bf4b426e4d676725828d1/base/task_scheduler/task_scheduler_impl.cc [modify] https://crrev.com/94520d71c9197a0f9b0bf4b426e4d676725828d1/base/task_scheduler/task_scheduler_impl.h [modify] https://crrev.com/94520d71c9197a0f9b0bf4b426e4d676725828d1/base/task_scheduler/task_scheduler_impl_unittest.cc [modify] https://crrev.com/94520d71c9197a0f9b0bf4b426e4d676725828d1/base/test/scoped_task_scheduler.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0c09719b6965b13fac67b09aff251db5c42890fd commit 0c09719b6965b13fac67b09aff251db5c42890fd Author: robliao <robliao@chromium.org> Date: Tue May 16 13:56:37 2017 Expose SingleThreadTaskRunnerThreadMode in post_task.h BUG= 720058 Review-Url: https://codereview.chromium.org/2885513002 Cr-Commit-Position: refs/heads/master@{#472092} [modify] https://crrev.com/0c09719b6965b13fac67b09aff251db5c42890fd/base/task_scheduler/post_task.cc [modify] https://crrev.com/0c09719b6965b13fac67b09aff251db5c42890fd/base/task_scheduler/post_task.h [modify] https://crrev.com/0c09719b6965b13fac67b09aff251db5c42890fd/base/task_scheduler/task_scheduler.h [modify] https://crrev.com/0c09719b6965b13fac67b09aff251db5c42890fd/base/task_scheduler/task_scheduler_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/767ec996d88c8f8719a4648b891b5e10501a7a99 commit 767ec996d88c8f8719a4648b891b5e10501a7a99 Author: robliao <robliao@chromium.org> Date: Tue May 23 21:36:23 2017 Refactor Environment Config Out of TaskSchedulerImpl The upcoming shared SingleThreadTaskRunner work will need access to the same environment config as TaskSchedulerImpl. BUG= 720058 Review-Url: https://codereview.chromium.org/2904593002 Cr-Commit-Position: refs/heads/master@{#474066} [modify] https://crrev.com/767ec996d88c8f8719a4648b891b5e10501a7a99/base/BUILD.gn [add] https://crrev.com/767ec996d88c8f8719a4648b891b5e10501a7a99/base/task_scheduler/environment_config.cc [add] https://crrev.com/767ec996d88c8f8719a4648b891b5e10501a7a99/base/task_scheduler/environment_config.h [modify] https://crrev.com/767ec996d88c8f8719a4648b891b5e10501a7a99/base/task_scheduler/task_scheduler_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b29b8d8833bf2f8fa7c1a33a90cf7d96a44d79ef commit b29b8d8833bf2f8fa7c1a33a90cf7d96a44d79ef Author: robliao <robliao@chromium.org> Date: Thu May 25 14:59:46 2017 Use Dedicated Threads for BrowserThreads Backed by SingleThreadTaskRunners BUG= 720058 Review-Url: https://codereview.chromium.org/2906573002 Cr-Commit-Position: refs/heads/master@{#474652} [modify] https://crrev.com/b29b8d8833bf2f8fa7c1a33a90cf7d96a44d79ef/content/browser/browser_main_loop.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e96185d01c286ffb9892e3f7dff6765bea1dc81b commit e96185d01c286ffb9892e3f7dff6765bea1dc81b Author: robliao <robliao@chromium.org> Date: Thu May 25 21:33:43 2017 Implement Shared SingleThreadTaskRunners in the Task Scheduler This change provides one shared SingleThreadTaskRunner per Trait+COM combination by reusing dedicated SingleThreadTaskRunners. In production, these SingleThreadTaskRunners will never be reclaimed. In tests, JoinForTesting() cleans these up. BUG= 720058 Review-Url: https://codereview.chromium.org/2902753003 Cr-Commit-Position: refs/heads/master@{#474813} [modify] https://crrev.com/e96185d01c286ffb9892e3f7dff6765bea1dc81b/base/task_scheduler/environment_config.h [modify] https://crrev.com/e96185d01c286ffb9892e3f7dff6765bea1dc81b/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc [modify] https://crrev.com/e96185d01c286ffb9892e3f7dff6765bea1dc81b/base/task_scheduler/scheduler_single_thread_task_runner_manager.h [modify] https://crrev.com/e96185d01c286ffb9892e3f7dff6765bea1dc81b/base/task_scheduler/scheduler_single_thread_task_runner_manager_unittest.cc [modify] https://crrev.com/e96185d01c286ffb9892e3f7dff6765bea1dc81b/base/task_scheduler/task_scheduler_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/47cd98bbaa7eb5ffffee7469182446f5e2548b12 commit 47cd98bbaa7eb5ffffee7469182446f5e2548b12 Author: robliao <robliao@chromium.org> Date: Wed May 31 04:37:49 2017 Followup to https://codereview.chromium.org/2902753003/ BUG= 720058 Review-Url: https://codereview.chromium.org/2917433002 Cr-Commit-Position: refs/heads/master@{#475804} [modify] https://crrev.com/47cd98bbaa7eb5ffffee7469182446f5e2548b12/base/task_scheduler/environment_config.h [modify] https://crrev.com/47cd98bbaa7eb5ffffee7469182446f5e2548b12/base/task_scheduler/scheduler_single_thread_task_runner_manager.cc [modify] https://crrev.com/47cd98bbaa7eb5ffffee7469182446f5e2548b12/base/task_scheduler/scheduler_single_thread_task_runner_manager.h
Comment 1 by bugdroid1@chromium.org
, May 12 2017