Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Issue 1101703003: Adds a SHUTDOWN_TASK_QUEUE and a PreShutdown api to the scheduler. (Closed)

Created:
5 years, 8 months ago by alex clarke (OOO till 29th)
Modified:
5 years, 6 months ago
Reviewers:
Sami, rmcilroy, sky
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, ben+mojo_chromium.org, jam, yzshen+watch_chromium.org, abarth-chromium, Aaron Boodman, darin-cc_chromium.org, mkwst+moarreviews-renderer_chromium.org, kinuko+watch, scheduler-bugs_chromium.org, darin (slow to review)
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Adds a SHUTDOWN_TASK_QUEUE and a PreShutdown api to the scheduler. Unfortunately webworkers have a complicated shutdown process and we need to be very careful to prevent execution of timers once the shutdown process has strated or we risk UAF bugs. This patch adds the concept of a SHUTDOWN_TASK_QUEUE to the SchedulerHelper (which is always on) and a (thread safe) PreShutdown API which turns off all other queues except for the control queue. BUG=463143

Patch Set 1 #

Patch Set 2 : Rebase of DOOM #

Total comments: 22

Patch Set 3 : Responding to feedback #

Total comments: 2

Patch Set 4 : Changes for Sami #

Total comments: 2

Patch Set 5 : The PrioritizingTaskQueueSelector now has a PreShutdown too. #

Total comments: 2

Patch Set 6 : Fix comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+294 lines, -18 lines) Patch
M components/html_viewer/web_scheduler_impl.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M components/html_viewer/web_scheduler_impl.cc View 1 2 1 chunk +19 lines, -1 line 0 comments Download
M components/scheduler/child/child_scheduler.h View 1 2 3 4 2 chunks +8 lines, -0 lines 0 comments Download
M components/scheduler/child/null_worker_scheduler.h View 1 2 chunks +2 lines, -0 lines 0 comments Download
M components/scheduler/child/null_worker_scheduler.cc View 1 2 chunks +8 lines, -0 lines 0 comments Download
M components/scheduler/child/prioritizing_task_queue_selector.h View 1 2 3 4 2 chunks +10 lines, -3 lines 0 comments Download
M components/scheduler/child/prioritizing_task_queue_selector.cc View 1 2 3 4 3 chunks +12 lines, -1 line 0 comments Download
M components/scheduler/child/prioritizing_task_queue_selector_unittest.cc View 1 2 3 4 1 chunk +21 lines, -0 lines 0 comments Download
M components/scheduler/child/scheduler_helper.h View 1 2 3 4 5 4 chunks +13 lines, -0 lines 0 comments Download
M components/scheduler/child/scheduler_helper.cc View 1 2 3 4 5 chunks +24 lines, -0 lines 0 comments Download
M components/scheduler/child/scheduler_helper_unittest.cc View 1 2 3 4 6 chunks +55 lines, -2 lines 0 comments Download
M components/scheduler/child/web_scheduler_impl.h View 1 2 3 chunks +7 lines, -1 line 0 comments Download
M components/scheduler/child/web_scheduler_impl.cc View 1 2 2 chunks +22 lines, -2 lines 0 comments Download
M components/scheduler/child/webthread_impl_for_worker_scheduler.cc View 1 2 2 chunks +8 lines, -5 lines 0 comments Download
M components/scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc View 1 2 chunks +34 lines, -2 lines 0 comments Download
M components/scheduler/child/worker_scheduler_impl.h View 1 1 chunk +2 lines, -0 lines 0 comments Download
M components/scheduler/child/worker_scheduler_impl.cc View 1 2 chunks +11 lines, -0 lines 0 comments Download
M components/scheduler/renderer/null_renderer_scheduler.h View 1 2 chunks +2 lines, -0 lines 0 comments Download
M components/scheduler/renderer/null_renderer_scheduler.cc View 1 2 chunks +8 lines, -0 lines 0 comments Download
M components/scheduler/renderer/renderer_scheduler_impl.h View 1 2 chunks +2 lines, -0 lines 0 comments Download
M components/scheduler/renderer/renderer_scheduler_impl.cc View 1 2 chunks +10 lines, -0 lines 0 comments Download
M components/scheduler/renderer/webthread_impl_for_renderer_scheduler.cc View 1 1 chunk +2 lines, -1 line 0 comments Download
M content/test/fake_renderer_scheduler.h View 1 2 chunks +2 lines, -0 lines 0 comments Download
M content/test/fake_renderer_scheduler.cc View 1 2 chunks +8 lines, -0 lines 0 comments Download

Messages

Total messages: 27 (9 generated)
alex clarke (OOO till 29th)
5 years, 8 months ago (2015-04-22 15:49:24 UTC) #2
alex clarke (OOO till 29th)
+sky@ please review the mojo change, thanks!
5 years, 8 months ago (2015-04-22 16:25:34 UTC) #4
Sami
https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/child_scheduler.h File components/scheduler/child/child_scheduler.h (right): https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/child_scheduler.h#newcode60 components/scheduler/child/child_scheduler.h:60: // Also ends any idle periods. If posted from ...
5 years, 8 months ago (2015-04-23 13:14:03 UTC) #5
sky
LGTM https://codereview.chromium.org/1101703003/diff/20001/mojo/services/html_viewer/web_scheduler_impl.cc File mojo/services/html_viewer/web_scheduler_impl.cc (right): https://codereview.chromium.org/1101703003/diff/20001/mojo/services/html_viewer/web_scheduler_impl.cc#newcode69 mojo/services/html_viewer/web_scheduler_impl.cc:69: // TODO(alexclarke) Implement pre shutdown for mojo? Add ...
5 years, 8 months ago (2015-04-23 16:35:37 UTC) #6
alex clarke (OOO till 29th)
PTAL https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/child_scheduler.h File components/scheduler/child/child_scheduler.h (right): https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/child_scheduler.h#newcode60 components/scheduler/child/child_scheduler.h:60: // Also ends any idle periods. If posted ...
5 years, 8 months ago (2015-04-23 17:34:33 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1101703003/40001
5 years, 8 months ago (2015-04-23 17:48:55 UTC) #10
Sami
https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/scheduler_helper.cc File components/scheduler/child/scheduler_helper.cc (right): https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/scheduler_helper.cc#newcode104 components/scheduler/child/scheduler_helper.cc:104: void SchedulerHelper::PreShutdown() { On 2015/04/23 17:34:32, alexclarke1 wrote: > ...
5 years, 8 months ago (2015-04-23 18:47:49 UTC) #11
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 8 months ago (2015-04-23 20:43:01 UTC) #13
alex clarke (OOO till 29th)
https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/scheduler_helper.cc File components/scheduler/child/scheduler_helper.cc (right): https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/scheduler_helper.cc#newcode120 components/scheduler/child/scheduler_helper.cc:120: EndIdlePeriod(); On 2015/04/23 18:47:49, Sami wrote: > On 2015/04/23 ...
5 years, 8 months ago (2015-04-24 09:32:36 UTC) #14
rmcilroy
https://codereview.chromium.org/1101703003/diff/60001/components/scheduler/child/child_scheduler.h File components/scheduler/child/child_scheduler.h (right): https://codereview.chromium.org/1101703003/diff/60001/components/scheduler/child/child_scheduler.h#newcode61 components/scheduler/child/child_scheduler.h:61: // was created on has completed the pre-shutdown. I'm ...
5 years, 8 months ago (2015-04-24 09:41:02 UTC) #16
Sami
https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/scheduler_helper.cc File components/scheduler/child/scheduler_helper.cc (right): https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/scheduler_helper.cc#newcode120 components/scheduler/child/scheduler_helper.cc:120: EndIdlePeriod(); On 2015/04/24 09:32:35, alexclarke1 wrote: > On 2015/04/23 ...
5 years, 8 months ago (2015-04-24 10:38:40 UTC) #17
alex clarke (OOO till 29th)
PTAL https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/scheduler_helper.cc File components/scheduler/child/scheduler_helper.cc (right): https://codereview.chromium.org/1101703003/diff/20001/components/scheduler/child/scheduler_helper.cc#newcode120 components/scheduler/child/scheduler_helper.cc:120: EndIdlePeriod(); On 2015/04/24 10:38:40, Sami wrote: > On ...
5 years, 8 months ago (2015-04-24 14:10:05 UTC) #18
rmcilroy
https://codereview.chromium.org/1101703003/diff/80001/components/scheduler/child/scheduler_helper.h File components/scheduler/child/scheduler_helper.h (right): https://codereview.chromium.org/1101703003/diff/80001/components/scheduler/child/scheduler_helper.h#newcode91 components/scheduler/child/scheduler_helper.h:91: // until the thread this class was created on ...
5 years, 8 months ago (2015-04-24 14:17:28 UTC) #19
alex clarke (OOO till 29th)
https://codereview.chromium.org/1101703003/diff/80001/components/scheduler/child/scheduler_helper.h File components/scheduler/child/scheduler_helper.h (right): https://codereview.chromium.org/1101703003/diff/80001/components/scheduler/child/scheduler_helper.h#newcode91 components/scheduler/child/scheduler_helper.h:91: // until the thread this class was created on ...
5 years, 8 months ago (2015-04-24 14:30:57 UTC) #20
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1101703003/100001
5 years, 8 months ago (2015-04-24 14:39:25 UTC) #23
Sami
Like we discussed, let's make the necessary parts of the selector part of the helper's ...
5 years, 8 months ago (2015-04-24 15:39:28 UTC) #24
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 8 months ago (2015-04-24 15:40:48 UTC) #26
Sami
5 years, 8 months ago (2015-04-27 16:53:34 UTC) #27
FYI, I took over this patch in https://codereview.chromium.org/1106213002.

Powered by Google App Engine
This is Rietveld 408576698