v8/include/cppgc
Omer Katz fb9a19fe0d cppgc: Initial marking loop
This CL introduces:
- Worklist
- MarkingHandler to manage gc marking phase
- Integration into CollectGarbage for atomic pause GC
- MarkingVisitor for main thread marking

Still missing from this CL:
- Proper handling for stack scanning
- Handling of previously not fully constructed objects

Bug: chromium:1056170
Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67642}
2020-05-07 10:54:49 +00:00
..
internal cppgc: Introduce heap object structure classes 2020-04-28 10:21:11 +00:00
allocation.h cppgc: Add PostConstructionCallbackTrait 2020-05-05 07:59:12 +00:00
DEPS cppgc: Add public target to build against 2020-04-21 12:48:23 +00:00
garbage-collected.h cppgc: Add public target to build against 2020-04-21 12:48:23 +00:00
heap.h cppgc: Initial marking loop 2020-05-07 10:54:49 +00:00
liveness-broker.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
macros.h cppgc: Add support for prefinalizers 2020-04-14 16:03:15 +00:00
member.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
persistent.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
platform.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
prefinalizer.h cppgc: Add public target to build against 2020-04-21 12:48:23 +00:00
README.md cppgc: Hello world 2020-03-23 21:42:56 +00:00
source-location.h Fix LINT exceptions across the code base 2020-04-27 16:37:04 +00:00
trace-trait.h cppgc: Duplicate worklist 2020-04-29 00:28:00 +00:00
type-traits.h cppgc: Make Trace methods const 2020-04-20 13:15:13 +00:00
visitor.h cppgc: Initial marking loop 2020-05-07 10:54:49 +00:00

C++ Garbage Collection

This directory provides an open-source garbage collection library for C++.

The library is under construction, meaning that all APIs in this directory are incomplete and considered unstable and should not be used.