• Michael Lippautz's avatar
    cppgc: Fix CTP destruction · 760682da
    Michael Lippautz authored
    Double-checked locking pattern for destruction was missing the acquire
    barrier for the initial load.
    
    TSAN complained with a data race where:
    T1: ClearAllUsedNodes(), clearing out the node
    T2: a. if(GetNodeSafe()) { Lock; ... }
    T2: b. operator delete
    
    Since GetNodeSafe() was a relaxed load, operator delete was allowed to
    be reordered which raced with ClearAllUsedNodes().
    
    Bug: chromium:1239081, chromium:1242795
    Change-Id: I3906555b13cc51538a1a54b7ca481a96d81fd84e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3132264
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
    Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#76599}
    760682da
Name
Last commit
Last update
..
internal Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...
README.md Loading commit data...
allocation.h Loading commit data...
common.h Loading commit data...
cross-thread-persistent.h Loading commit data...
custom-space.h Loading commit data...
default-platform.h Loading commit data...
ephemeron-pair.h Loading commit data...
explicit-management.h Loading commit data...
garbage-collected.h Loading commit data...
heap-consistency.h Loading commit data...
heap-state.h Loading commit data...
heap-statistics.h Loading commit data...
heap.h Loading commit data...
liveness-broker.h Loading commit data...
macros.h Loading commit data...
member.h Loading commit data...
name-provider.h Loading commit data...
object-size-trait.h Loading commit data...
persistent.h Loading commit data...
platform.h Loading commit data...
prefinalizer.h Loading commit data...
process-heap-statistics.h Loading commit data...
sentinel-pointer.h Loading commit data...
source-location.h Loading commit data...
testing.h Loading commit data...
trace-trait.h Loading commit data...
type-traits.h Loading commit data...
visitor.h Loading commit data...