3161d6786a
This avoids a benign race in setting the raw pointer inside CTP destructor by not emitting the write at all. The handle is destructed which means that we only need to destroy any backing node but may leave the handle untouched. Drive-by: - Add a few more docs. - Make Clear() thread-safe. - Make assignment of a sentinel pointer thread-safe. - Make assignment of a nullptr thread-safe. Depends on the Blink change: https://crrev.com/c/3116259 Bug: chromium:1242795, chromium:1243350 Change-Id: I8d76da30893c165e3946322b6d02f6ea2c8e529e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3114064 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#76493} |
||
---|---|---|
.. | ||
internal | ||
allocation.h | ||
common.h | ||
cross-thread-persistent.h | ||
custom-space.h | ||
default-platform.h | ||
DEPS | ||
ephemeron-pair.h | ||
explicit-management.h | ||
garbage-collected.h | ||
heap-consistency.h | ||
heap-state.h | ||
heap-statistics.h | ||
heap.h | ||
liveness-broker.h | ||
macros.h | ||
member.h | ||
name-provider.h | ||
object-size-trait.h | ||
OWNERS | ||
persistent.h | ||
platform.h | ||
prefinalizer.h | ||
process-heap-statistics.h | ||
README.md | ||
sentinel-pointer.h | ||
source-location.h | ||
testing.h | ||
trace-trait.h | ||
type-traits.h | ||
visitor.h |
Oilpan: C++ Garbage Collection
Oilpan is an open-source garbage collection library for C++ that can be used stand-alone or in collaboration with V8's JavaScript garbage collector.
Key properties
- Trace-based garbage collection;
- Precise on-heap memory layout;
- Conservative on-stack memory layout;
- Allows for collection with and without considering stack;
- Incremental and concurrent marking;
- Incremental and concurrent sweeping;
- Non-incremental and non-concurrent compaction for selected spaces;
See the Hello World example on how to get started using Oilpan to manage C++ code.
Oilpan follows V8's project organization, see e.g. on how we accept contributions and provide a stable API.