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

Issue 1919663002: Unify and generalize thread static persistent finalization. (Closed)

Created:
4 years, 8 months ago by sof
Modified:
4 years, 8 months ago
Reviewers:
oilpan-reviews, haraken
CC:
chromium-reviews, oilpan-reviews, Mads Ager (chromium), blink-reviews-css, dglazkov+blink, apavlov+blink_chromium.org, darktears, blink-reviews, kinuko+watch, kouhei+heap_chromium.org, rwlbuis
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Unify and generalize thread static persistent finalization. Make ThreadState's registerAsStaticReference() generally available, and not specific to LSan-only registration of static persistents that must be cleared prior to performing leak detection. By doing so, it can be used to handle thread-local static persistents also. Upon a thread finalizing its ThreadState, these static persistents will be cleared & released. In order to make that safe and not leave dangling PersistentNode references around afterwards, generalize the release mechanism to also clear the Persistent/PersistentCollectionBase that registered the persistent node. R=haraken BUG= Committed: https://crrev.com/7de35e892724a0307ddd6440c69a2223e0fd4755 Cr-Commit-Position: refs/heads/master@{#389448}

Patch Set 1 #

Patch Set 2 : generalize clearing #

Total comments: 6

Patch Set 3 : rebased #

Patch Set 4 : rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+93 lines, -87 lines) Patch
M third_party/WebKit/Source/core/css/CSSValuePool.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/heap/Handle.h View 1 2 5 chunks +23 lines, -35 lines 0 comments Download
M third_party/WebKit/Source/platform/heap/HeapTest.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/heap/PersistentNode.h View 1 2 2 chunks +3 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/platform/heap/PersistentNode.cpp View 1 2 3 4 chunks +26 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/platform/heap/ThreadState.h View 1 2 2 chunks +10 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/platform/heap/ThreadState.cpp View 1 2 4 chunks +28 lines, -26 lines 0 comments Download
M third_party/WebKit/Source/web/tests/RunAllTests.cpp View 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 23 (12 generated)
sof
please take a look.
4 years, 8 months ago (2016-04-24 21:19:11 UTC) #3
haraken
https://codereview.chromium.org/1919663002/diff/20001/third_party/WebKit/Source/platform/heap/Handle.h File third_party/WebKit/Source/platform/heap/Handle.h (right): https://codereview.chromium.org/1919663002/diff/20001/third_party/WebKit/Source/platform/heap/Handle.h#newcode554 third_party/WebKit/Source/platform/heap/Handle.h:554: (reinterpret_cast<PersistentHeapCollectionBase<Collection>*>(self))->uninitialize(); Why does PersistentHeapCollectionBase need to call uninitialize() while ...
4 years, 8 months ago (2016-04-25 08:39:23 UTC) #5
sof
https://codereview.chromium.org/1919663002/diff/20001/third_party/WebKit/Source/platform/heap/Handle.h File third_party/WebKit/Source/platform/heap/Handle.h (right): https://codereview.chromium.org/1919663002/diff/20001/third_party/WebKit/Source/platform/heap/Handle.h#newcode554 third_party/WebKit/Source/platform/heap/Handle.h:554: (reinterpret_cast<PersistentHeapCollectionBase<Collection>*>(self))->uninitialize(); On 2016/04/25 08:39:23, haraken wrote: > > Why ...
4 years, 8 months ago (2016-04-25 08:53:05 UTC) #6
haraken
LGTM
4 years, 8 months ago (2016-04-25 09:05:54 UTC) #7
sof
linux_chromium_asan_rel_ng provides LSan coverage wrt static persistents for unit tests, but also tested in a ...
4 years, 8 months ago (2016-04-25 09:10:16 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1919663002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1919663002/20001
4 years, 8 months ago (2016-04-25 09:10:41 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/172558)
4 years, 8 months ago (2016-04-25 09:16:17 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1919663002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1919663002/40001
4 years, 8 months ago (2016-04-25 09:53:20 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1919663002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1919663002/60001
4 years, 8 months ago (2016-04-25 09:58:54 UTC) #19
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 8 months ago (2016-04-25 11:13:25 UTC) #21
commit-bot: I haz the power
4 years, 8 months ago (2016-04-25 11:14:25 UTC) #23
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/7de35e892724a0307ddd6440c69a2223e0fd4755
Cr-Commit-Position: refs/heads/master@{#389448}

Powered by Google App Engine
This is Rietveld 408576698