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

Issue 2164103002: TaskScheduler: Don't delete Tasks in the scope of a Sequence's lock. (Closed)

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

Description

TaskScheduler: Don't delete Tasks in the scope of a Sequence's lock. Currently, Sequence::PopTask() deletes a Task within the scope of the Sequence's lock. This is bad because: - A deadlock occurs if the Task's destructor tries to post a Task to the same Sequence. - Multiple locks are held at the same time if the Task's destructor tries to post a task to another Sequence. - The Sequence's lock can't be acquired by another thread while the Task's destructor runs (unnecessary contention). With this CL, Sequence::PopTask() releases its lock before deleting the popped Task. BUG=553459 Committed: https://crrev.com/0503a773fdb9a6b7c446560f6f02c70655017cc8 Cr-Commit-Position: refs/heads/master@{#406948}

Patch Set 1 #

Total comments: 6

Patch Set 2 : CR robliao, gab #3-4 #

Total comments: 2

Patch Set 3 : CR robliao #6 (initialize variable at declaration) #

Unified diffs Side-by-side diffs Delta from patch set Stats (+64 lines, -8 lines) Patch
M base/task_scheduler/sequence.cc View 1 2 1 chunk +19 lines, -8 lines 0 comments Download
M base/task_scheduler/sequence_unittest.cc View 1 3 chunks +45 lines, -0 lines 0 comments Download

Messages

Total messages: 13 (4 generated)
fdoray
PTAL
4 years, 5 months ago (2016-07-20 19:21:52 UTC) #2
gab
lgtm w/ english nit :-) https://codereview.chromium.org/2164103002/diff/1/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/2164103002/diff/1/base/task_scheduler/sequence.cc#newcode39 base/task_scheduler/sequence.cc:39: // Delete the popped ...
4 years, 5 months ago (2016-07-20 20:34:51 UTC) #3
robliao
https://codereview.chromium.org/2164103002/diff/1/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/2164103002/diff/1/base/task_scheduler/sequence.cc#newcode44 base/task_scheduler/sequence.cc:44: AutoSchedulerLock auto_lock(lock_); This would be more robust and clearer ...
4 years, 5 months ago (2016-07-20 22:39:00 UTC) #4
fdoray
robliao@: PTAnL https://codereview.chromium.org/2164103002/diff/1/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/2164103002/diff/1/base/task_scheduler/sequence.cc#newcode39 base/task_scheduler/sequence.cc:39: // Delete the popped task outside the ...
4 years, 5 months ago (2016-07-21 13:36:03 UTC) #5
robliao
lgtm + comment. https://codereview.chromium.org/2164103002/diff/20001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/2164103002/diff/20001/base/task_scheduler/sequence.cc#newcode43 base/task_scheduler/sequence.cc:43: bool sequence_empty_after_pop; Variables have to be ...
4 years, 5 months ago (2016-07-21 17:53:18 UTC) #6
fdoray
https://codereview.chromium.org/2164103002/diff/20001/base/task_scheduler/sequence.cc File base/task_scheduler/sequence.cc (right): https://codereview.chromium.org/2164103002/diff/20001/base/task_scheduler/sequence.cc#newcode43 base/task_scheduler/sequence.cc:43: bool sequence_empty_after_pop; On 2016/07/21 17:53:18, robliao wrote: > Variables ...
4 years, 5 months ago (2016-07-21 17:57:41 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2164103002/40001
4 years, 5 months ago (2016-07-21 17:58:19 UTC) #10
commit-bot: I haz the power
Committed patchset #3 (id:40001)
4 years, 5 months ago (2016-07-21 21:23:17 UTC) #11
commit-bot: I haz the power
4 years, 5 months ago (2016-07-21 21:25:51 UTC) #13
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/0503a773fdb9a6b7c446560f6f02c70655017cc8
Cr-Commit-Position: refs/heads/master@{#406948}

Powered by Google App Engine
This is Rietveld 408576698