DescriptionHandle cross-thread weak persistents during global weak processing.
r401880 changed the handling of weak persistents, clearing
and releasing their underlying PersistentNodes once their
weak references point to otherwise unreferenced objects.
However, performing that weak processing step cannot reliably
be done as part of thread-local weak processing if the
weak persistent is a CrossThreadWeakPersistent<T> (CTWP) as the
object it refers to may reside on a different thread's heap than
where the CTWP resides. If both locations need to be accessed,
doing that as part of thread-local weak processing is too
late and unsafe.
Instead we process the cross-thread weak persistents along with the
'weak cells' during global weak processing. WeakPersistent<>s are
still handled during thread-local weak processing.
R=
BUG=623985
Committed: https://crrev.com/a71167e5645142b200f917bf26b7a546e36a3574
Cr-Commit-Position: refs/heads/master@{#402734}
Patch Set 1 #Patch Set 2 : only treat cross-thread weaks during global weak processing #
Total comments: 2
Messages
Total messages: 16 (8 generated)
|