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

Issue 1705253002: TaskScheduler [3/9] Task and Sequence (Closed)

Created:
4 years, 10 months ago by fdoray
Modified:
4 years, 9 months ago
Reviewers:
robliao, danakj, gab, Nico, jam
CC:
chromium-reviews, vmpstr+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@s_1_scheduler_lock
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

TaskScheduler [3/9] Task and Sequence This change is a subset of https://codereview.chromium.org/1698183005/ A Task is a unit of work in the task scheduler. It has a closure, a sequenced time, TaskTraits and other metadata inherited from base::PendingTask. A Sequence holds Tasks that must run in order. It is ref-counted and has thread-safe Push, Pop and Peek operations. Priority queues, worker threads and task runners will have references on Sequences. BUG=553459 Committed: https://crrev.com/c48d5f0936e192046e11f9f9f03a70570523fc94 Cr-Commit-Position: refs/heads/master@{#381638}

Patch Set 1 #

Total comments: 64

Patch Set 2 : address comments from gab #

Patch Set 3 : fix test #

Patch Set 4 : self review #

Total comments: 20

Patch Set 5 : address comments from gab #

Patch Set 6 : self review #

Total comments: 4

Patch Set 7 : address comments from gab #11 #

Patch Set 8 : self review #

Total comments: 48

Patch Set 9 : address comments from robliao #13 #

Total comments: 17

Patch Set 10 : address comments from gab #16 #

Patch Set 11 : Set sequenced time in Sequence::PushTask. #

Patch Set 12 : remove scheduler lock from diff #

Total comments: 7

Patch Set 13 : Add comments. #

Patch Set 14 : typo #

Patch Set 15 : typo #

Patch Set 16 : fix comment. #

Patch Set 17 : rebase #

Patch Set 18 : typo. #

Total comments: 4

Patch Set 19 : static_assert #

Total comments: 26

Patch Set 20 : CR from Dana #36-37 #

Total comments: 4

Patch Set 21 : CR from Dana and Gab #40-41 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+638 lines, -18 lines) Patch
M base/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 chunks +8 lines, -0 lines 0 comments Download
M base/base.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +2 lines, -0 lines 0 comments Download
M base/base.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +6 lines, -0 lines 0 comments Download
A base/task_scheduler/sequence.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +66 lines, -0 lines 0 comments Download
A base/task_scheduler/sequence.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +79 lines, -0 lines 0 comments Download
A base/task_scheduler/sequence_sort_key.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +34 lines, -0 lines 0 comments Download
A base/task_scheduler/sequence_sort_key.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +28 lines, -0 lines 0 comments Download
A base/task_scheduler/sequence_sort_key_unittest.cc View 1 2 3 4 5 6 7 8 9 1 chunk +129 lines, -0 lines 0 comments Download
A base/task_scheduler/sequence_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +184 lines, -0 lines 0 comments Download
A base/task_scheduler/task.h View 1 2 3 4 5 6 7 8 9 1 chunk +39 lines, -0 lines 0 comments Download
A base/task_scheduler/task.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +22 lines, -0 lines 0 comments Download
M base/task_scheduler/task_traits.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 4 chunks +25 lines, -18 lines 0 comments Download
M base/task_scheduler/task_traits.cc View 1 2 3 4 2 chunks +16 lines, -0 lines 0 comments Download

Messages

Total messages: 49 (12 generated)
fdoray
4 years, 10 months ago (2016-02-17 20:11:27 UTC) #1
fdoray
https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence.cc#newcode36 base/task_scheduler/sequence.cc:36: AutoSchedulerLock auto_lock(lock_); Put AutoSchedulerLock first, to be consistent with ...
4 years, 10 months ago (2016-02-18 01:46:11 UTC) #5
gab
lg, comments below, thanks! https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence.cc#newcode14 base/task_scheduler/sequence.cc:14: Sequence::Sequence() : num_tasks_per_priority_() {} Does ...
4 years, 10 months ago (2016-02-18 03:00:46 UTC) #6
fdoray
all done https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence.cc#newcode14 base/task_scheduler/sequence.cc:14: Sequence::Sequence() : num_tasks_per_priority_() {} On 2016/02/18 03:00:45, ...
4 years, 10 months ago (2016-02-18 14:56:13 UTC) #7
gab
lvg, just a couple last things. https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence_sort_key.cc File base/task_scheduler/sequence_sort_key.cc (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence_sort_key.cc#newcode25 base/task_scheduler/sequence_sort_key.cc:25: return next_task_post_time_ > ...
4 years, 10 months ago (2016-02-18 20:22:34 UTC) #8
gab
1*2 more thing(s) :-) https://codereview.chromium.org/1705253002/diff/60001/base/task_scheduler/sequence.h File base/task_scheduler/sequence.h (right): https://codereview.chromium.org/1705253002/diff/60001/base/task_scheduler/sequence.h#newcode35 base/task_scheduler/sequence.h:35: const Task* PeekTask(); const method ...
4 years, 10 months ago (2016-02-18 20:28:10 UTC) #9
fdoray
https://codereview.chromium.org/1705253002/diff/60001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/60001/base/task_scheduler/sequence.cc#newcode51 base/task_scheduler/sequence.cc:51: TaskPriority priority = TaskPriority::BACKGROUND; On 2016/02/18 20:22:34, gab wrote: ...
4 years, 10 months ago (2016-02-18 20:52:05 UTC) #10
gab
https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence_sort_key.h File base/task_scheduler/sequence_sort_key.h (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence_sort_key.h#newcode37 base/task_scheduler/sequence_sort_key.h:37: TaskPriority priority_; On 2016/02/18 20:22:34, gab wrote: > On ...
4 years, 10 months ago (2016-02-18 21:21:16 UTC) #11
fdoray
gab@: Can you take another look? https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence_sort_key.h File base/task_scheduler/sequence_sort_key.h (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/sequence_sort_key.h#newcode37 base/task_scheduler/sequence_sort_key.h:37: TaskPriority priority_; On ...
4 years, 10 months ago (2016-02-18 22:19:54 UTC) #12
robliao
An initial pass https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc#newcode19 base/task_scheduler/sequence.cc:19: ++num_tasks_per_priority_[static_cast<TaskPriorityUnderlyingType>( Maybe a temporary for the ...
4 years, 10 months ago (2016-02-19 02:33:43 UTC) #13
fdoray
robliao@: All done. https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc#newcode19 base/task_scheduler/sequence.cc:19: ++num_tasks_per_priority_[static_cast<TaskPriorityUnderlyingType>( On 2016/02/19 02:33:43, robliao wrote: ...
4 years, 10 months ago (2016-02-19 14:12:15 UTC) #14
fdoray
https://codereview.chromium.org/1705253002/diff/160001/base/task_scheduler/scheduler_lock.cc File base/task_scheduler/scheduler_lock.cc (left): https://codereview.chromium.org/1705253002/diff/160001/base/task_scheduler/scheduler_lock.cc#oldcode135 base/task_scheduler/scheduler_lock.cc:135: return std::move(cond_var); oups... this shouldn't have been in this ...
4 years, 10 months ago (2016-02-19 14:18:46 UTC) #15
gab
Comments and comments on comments :-), almost there! https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc#newcode38 base/task_scheduler/sequence.cc:38: DCHECK(!queue_.empty()); ...
4 years, 10 months ago (2016-02-19 16:50:47 UTC) #16
gab
https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence_sort_key.h File base/task_scheduler/sequence_sort_key.h (right): https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence_sort_key.h#newcode22 base/task_scheduler/sequence_sort_key.h:22: bool operator<(const SequenceSortKey& other) const; On 2016/02/19 16:50:47, gab ...
4 years, 10 months ago (2016-02-19 16:52:56 UTC) #17
fdoray
https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc#newcode38 base/task_scheduler/sequence.cc:38: DCHECK(!queue_.empty()); On 2016/02/19 16:50:47, gab wrote: > On 2016/02/19 ...
4 years, 10 months ago (2016-02-19 22:28:30 UTC) #18
gab
lgtm % nits Thanks! Gab https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc#newcode38 base/task_scheduler/sequence.cc:38: DCHECK(!queue_.empty()); On 2016/02/19 22:28:29, ...
4 years, 10 months ago (2016-02-22 17:12:21 UTC) #19
fdoray
https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/140001/base/task_scheduler/sequence.cc#newcode38 base/task_scheduler/sequence.cc:38: DCHECK(!queue_.empty()); On 2016/02/22 17:12:21, gab wrote: > On 2016/02/19 ...
4 years, 10 months ago (2016-02-22 18:07:55 UTC) #20
gab
lgtm++ go ahead and submit to jam for OWNERS as it doesn't actually depend on ...
4 years, 10 months ago (2016-02-22 20:00:21 UTC) #21
fdoray
jam@: Can you review this CL? Thanks. Note: Sequence uses SchedulerLock, introduced by another CL ...
4 years, 10 months ago (2016-02-22 20:29:04 UTC) #23
robliao
lgtm + nits https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/test_util.cc File base/task_scheduler/test_util.cc (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/test_util.cc#newcode24 base/task_scheduler/test_util.cc:24: default: On 2016/02/18 14:56:13, fdoray wrote: ...
4 years, 10 months ago (2016-02-22 21:34:12 UTC) #24
gab
https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/test_util.cc File base/task_scheduler/test_util.cc (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/test_util.cc#newcode24 base/task_scheduler/test_util.cc:24: default: On 2016/02/22 21:34:12, robliao wrote: > On 2016/02/18 ...
4 years, 10 months ago (2016-02-22 21:40:24 UTC) #25
robliao
https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/test_util.cc File base/task_scheduler/test_util.cc (right): https://codereview.chromium.org/1705253002/diff/1/base/task_scheduler/test_util.cc#newcode24 base/task_scheduler/test_util.cc:24: default: On 2016/02/22 21:40:24, gab wrote: > On 2016/02/22 ...
4 years, 10 months ago (2016-02-22 21:45:48 UTC) #26
jam
On 2016/02/22 20:29:04, fdoray wrote: > jam@: Can you review this CL? Thanks. > > ...
4 years, 10 months ago (2016-02-22 23:34:34 UTC) #27
gab
On 2016/02/22 23:34:34, jam wrote: > On 2016/02/22 20:29:04, fdoray wrote: > > jam@: Can ...
4 years, 10 months ago (2016-02-23 01:17:57 UTC) #29
gab
On 2016/02/23 01:17:57, gab wrote: > On 2016/02/22 23:34:34, jam wrote: > > On 2016/02/22 ...
4 years, 10 months ago (2016-02-23 02:23:28 UTC) #31
fdoray
https://codereview.chromium.org/1705253002/diff/340001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/340001/base/task_scheduler/sequence.cc#newcode59 base/task_scheduler/sequence.cc:59: // Find the highest task priority in the sequence. ...
4 years, 10 months ago (2016-02-23 13:38:36 UTC) #32
gab
Thanks, @Dana
4 years, 9 months ago (2016-03-03 00:40:27 UTC) #33
fdoray
Dana: This is the next CL to review for the new task scheduler.
4 years, 9 months ago (2016-03-15 14:24:44 UTC) #35
danakj
Can you add more to the CL description to say what this is doing on ...
4 years, 9 months ago (2016-03-15 22:20:34 UTC) #36
danakj
https://codereview.chromium.org/1705253002/diff/360001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/360001/base/task_scheduler/sequence.cc#newcode24 base/task_scheduler/sequence.cc:24: static_cast<TaskPriorityUnderlyingType>(task->traits.priority()); Can you put code that doesn't access members ...
4 years, 9 months ago (2016-03-15 23:16:32 UTC) #37
fdoray
danakj@: All done. Can you take another look? Thanks. https://codereview.chromium.org/1705253002/diff/360001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/360001/base/task_scheduler/sequence.cc#newcode24 base/task_scheduler/sequence.cc:24: ...
4 years, 9 months ago (2016-03-16 19:11:44 UTC) #39
danakj
LGTM 1 more thing tho: https://codereview.chromium.org/1705253002/diff/380001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/380001/base/task_scheduler/sequence.cc#newcode52 base/task_scheduler/sequence.cc:52: scoped_ptr<AutoSchedulerLock> auto_lock(new AutoSchedulerLock(lock_)); Rather ...
4 years, 9 months ago (2016-03-16 19:40:33 UTC) #40
gab
Thanks all, one last thing from me https://codereview.chromium.org/1705253002/diff/380001/base/task_scheduler/task_traits.h File base/task_scheduler/task_traits.h (right): https://codereview.chromium.org/1705253002/diff/380001/base/task_scheduler/task_traits.h#newcode79 base/task_scheduler/task_traits.h:79: class BASE_EXPORT ...
4 years, 9 months ago (2016-03-16 22:18:50 UTC) #41
fdoray
https://codereview.chromium.org/1705253002/diff/380001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/1705253002/diff/380001/base/task_scheduler/sequence.cc#newcode52 base/task_scheduler/sequence.cc:52: scoped_ptr<AutoSchedulerLock> auto_lock(new AutoSchedulerLock(lock_)); On 2016/03/16 19:40:33, danakj wrote: > ...
4 years, 9 months ago (2016-03-17 00:42:33 UTC) #42
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1705253002/400001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1705253002/400001
4 years, 9 months ago (2016-03-17 00:43:17 UTC) #45
commit-bot: I haz the power
Committed patchset #21 (id:400001)
4 years, 9 months ago (2016-03-17 01:57:53 UTC) #47
commit-bot: I haz the power
4 years, 9 months ago (2016-03-17 01:59:04 UTC) #49
Message was sent while issue was closed.
Patchset 21 (id:??) landed as
https://crrev.com/c48d5f0936e192046e11f9f9f03a70570523fc94
Cr-Commit-Position: refs/heads/master@{#381638}

Powered by Google App Engine
This is Rietveld 408576698