5#ifndef V8_HEAP_CPPGC_MARKING_WORKLISTS_H_
6#define V8_HEAP_CPPGC_MARKING_WORKLISTS_H_
8#include <unordered_set>
22 template <AccessMode = AccessMode::kNonAtomic>
24 template <AccessMode = AccessMode::kNonAtomic>
26 template <AccessMode = AccessMode::kNonAtomic>
27 std::unordered_set<HeapObjectHeader*> Extract();
28 template <AccessMode = AccessMode::kNonAtomic>
30 template <AccessMode = AccessMode::kNonAtomic>
39 void*
operator new(size_t) =
delete;
40 void*
operator new[](size_t) =
delete;
41 void operator delete(
void*) =
delete;
42 void operator delete[](
void*) =
delete;
45 std::unordered_set<HeapObjectHeader*>
objects_;
169template <AccessMode mode>
176template <AccessMode mode>
180 return objects_.find(
object) != objects_.end();
183template <AccessMode mode>
184std::unordered_set<HeapObjectHeader*>
187 std::unordered_set<HeapObjectHeader*> extracted;
188 std::swap(extracted, objects_);
193template <AccessMode mode>
199template <AccessMode mode>
202 return objects_.empty();
bool Contains(HeapObjectHeader *)
std::unordered_set< HeapObjectHeader * > Extract()
void Push(HeapObjectHeader *)
std::unordered_set< HeapObjectHeader * > objects_
WeakCallbackWorklist * weak_container_callback_worklist()
WeakCustomCallbackWorklist * weak_custom_callback_worklist()
static constexpr int kMutatorThreadId
EphemeronPairsWorklist * ephemeron_pairs_for_processing_worklist()
EphemeronPairsWorklist ephemeron_pairs_for_processing_worklist_
PreviouslyNotFullyConstructedWorklist * previously_not_fully_constructed_worklist()
RetraceMarkedObjectsWorklist * retrace_marked_objects_worklist()
RetraceMarkedObjectsWorklist retrace_marked_objects_worklist_
WeakCallbackWorklist weak_container_callback_worklist_
const ConcurrentMarkingBailoutWorklist * concurrent_marking_bailout_worklist() const
WeakContainersWorklist weak_containers_worklist_
WeakCallbackWorklist * parallel_weak_callback_worklist()
EphemeronPairsWorklist discovered_ephemeron_pairs_worklist_
WeakCallbackWorklist parallel_weak_callback_worklist_
ConcurrentMarkingBailoutWorklist * concurrent_marking_bailout_worklist()
NotFullyConstructedWorklist * not_fully_constructed_worklist()
heap::base::Worklist< HeapObjectHeader *, 16 > PreviouslyNotFullyConstructedWorklist
WeakContainersWorklist * weak_containers_worklist()
cppgc::TraceDescriptor MarkingItem
EphemeronPairsWorklist * discovered_ephemeron_pairs_worklist()
MarkingWorklist * marking_worklist()
WriteBarrierWorklist * write_barrier_worklist()
WeakCustomCallbackWorklist weak_custom_callback_worklist_
ConcurrentMarkingBailoutWorklist concurrent_marking_bailout_worklist_
MarkingWorklist marking_worklist_
WriteBarrierWorklist write_barrier_worklist_
PreviouslyNotFullyConstructedWorklist previously_not_fully_constructed_worklist_
NotFullyConstructedWorklist not_fully_constructed_worklist_
void(*)(const LivenessBroker &, const void *) WeakCallback
void(*)(Visitor *visitor, const void *object) TraceCallback
#define DCHECK_NOT_NULL(val)
#define DCHECK(condition)
#define V8_EXPORT_PRIVATE
TraceDescriptor value_desc
ConditionalMutexGuard(v8::base::Mutex *)
ConditionalMutexGuard(v8::base::Mutex *lock)
v8::base::MutexGuard guard_
cppgc::WeakCallback callback