5#ifndef V8_HEAP_CPPGC_CONCURRENT_MARKER_H_
6#define V8_HEAP_CPPGC_CONCURRENT_MARKER_H_
33 void NotifyIncrementalMutatorStepCompleted();
36 bool IsActive()
const;
41 return incremental_marking_schedule_;
44 void AddConcurrentlyMarkedBytes(
size_t marked_bytes);
46 return concurrently_marked_bytes_.load(std::memory_order_relaxed);
53 void IncreaseMarkingPriorityIfNeeded();
62 std::unique_ptr<JobHandle> concurrent_marking_handle_{
nullptr};
64 std::atomic<size_t> concurrently_marked_bytes_ = 0;
65 bool concurrent_marking_priority_increased_{
false};
75 incremental_marking_schedule, platform) {}
77 std::unique_ptr<Visitor> CreateConcurrentMarkingVisitor(
size_t concurrently_marked_bytes() const
ConcurrentMarkerBase(const ConcurrentMarkerBase &)=delete
heap::base::IncrementalMarkingSchedule & incremental_marking_schedule_
cppgc::Platform *const platform_
heap::base::IncrementalMarkingSchedule & incremental_marking_schedule() const
virtual std::unique_ptr< Visitor > CreateConcurrentMarkingVisitor(ConcurrentMarkingState &) const =0
ConcurrentMarkerBase & operator=(const ConcurrentMarkerBase &)=delete
MarkingWorklists & marking_worklists() const
MarkingWorklists & marking_worklists_
ConcurrentMarker(HeapBase &heap, MarkingWorklists &marking_worklists, heap::base::IncrementalMarkingSchedule &incremental_marking_schedule, cppgc::Platform *platform)
MarkingWorklists marking_worklists_
#define V8_EXPORT_PRIVATE