New issue
Advanced search Search tips

Issue 684080 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocking:
issue 694823
issue 662122



Sign in to add a comment

Move Single Thread Task Runners in the Task Scheduler to Dedicated Threads

Project Member Reported by robliao@chromium.org, Jan 23 2017

Issue description

This better supports existing uses of single threaded work today (e.g. Main thread, blink thread).
 
Project Member

Comment 1 by bugdroid1@chromium.org, Feb 10 2017

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

Blocking: 694823
Project Member

Comment 3 by bugdroid1@chromium.org, Feb 24 2017

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

Project Member

Comment 4 by bugdroid1@chromium.org, Feb 27 2017

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

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 2 2017

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

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 10 2017

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

Project Member

Comment 7 by bugdroid1@chromium.org, Mar 13 2017

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

Status: Fixed (was: Started)
This is available in the build now.

Sign in to add a comment