v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::UnifiedHeapMarker Class Referencefinal
Inheritance diagram for v8::internal::UnifiedHeapMarker:
Collaboration diagram for v8::internal::UnifiedHeapMarker:

Public Member Functions

 UnifiedHeapMarker (Heap *v8_heap, cppgc::internal::HeapBase &cpp_heap, std::shared_ptr<::heap::base::IncrementalMarkingSchedule > incremental_schedule, cppgc::Platform *platform, cppgc::internal::MarkingConfig config)
 
 ~UnifiedHeapMarker () final=default
 
cppgc::internal::MarkingWorklists & GetMarkingWorklists ()
 
cppgc::internal::MutatorMarkingState & GetMutatorMarkingState ()
 
UnifiedHeapMarkingState & GetMutatorUnifiedHeapMarkingState ()
 
UnifiedHeapConservativeMarkingVisitor & conservative_visitor () final
 
void ScheduleIncrementalMarkingTask () final
 
void AdvanceMarkingOnAllocationImpl () final
 
- Public Member Functions inherited from cppgc::internal::MarkerBase
virtual ~MarkerBase ()
 
 MarkerBase (const MarkerBase &)=delete
 
MarkerBase & operator= (const MarkerBase &)=delete
 
template<typename Class >
Class & To ()
 
void EnterAtomicPause (StackState)
 
void EnterProcessGlobalAtomicPause ()
 
void ReEnableConcurrentMarking ()
 
bool AdvanceMarkingWithLimits (v8::base::TimeDelta=kMaximumIncrementalStepDuration, size_t marked_bytes_limit=0)
 
size_t last_bytes_marked () const
 
void LeaveAtomicPause ()
 
void StartMarking ()
 
void FinishMarking (StackState)
 
void ProcessCrossThreadWeaknessIfNeeded ()
 
void ProcessWeakness ()
 
bool JoinConcurrentMarkingIfNeeded ()
 
void NotifyConcurrentMarkingOfWorkIfNeeded (cppgc::TaskPriority)
 
template<WriteBarrierType type>
void WriteBarrierForObject (HeapObjectHeader &)
 
HeapBase & heap ()
 
cppgc::Visitor & Visitor ()
 
bool IsMarking () const
 
void SetMainThreadMarkingDisabledForTesting (bool)
 
void WaitForConcurrentMarkingForTesting ()
 
void ClearAllWorklistsForTesting ()
 
bool IncrementalMarkingStepForTesting (StackState)
 
MarkingWorklists & MarkingWorklistsForTesting ()
 
MutatorMarkingState & MutatorMarkingStateForTesting ()
 

Protected Member Functions

cppgc::Visitor & visitor () final
 
::heap::base::StackVisitor & stack_visitor () final
 
cppgc::internal::ConcurrentMarkerBase & concurrent_marker () final
 
::heap::base::IncrementalMarkingSchedule & schedule () final
 
- Protected Member Functions inherited from cppgc::internal::MarkerBase
 MarkerBase (HeapBase &, cppgc::Platform *, MarkingConfig)
 
bool ProcessWorklistsWithDeadline (size_t marked_bytes_deadline, v8::base::TimeTicks time_deadline)
 
void AdvanceMarkingWithLimitsEpilogue ()
 
void VisitLocalRoots (StackState)
 
void VisitCrossThreadRoots ()
 
void MarkNotFullyConstructedObjects ()
 
bool IncrementalMarkingStep (StackState)
 
void AdvanceMarkingOnAllocation ()
 
void HandleNotFullyConstructedObjects ()
 
void MarkStrongCrossThreadRoots ()
 

Private Attributes

UnifiedHeapMarkingState mutator_unified_heap_marking_state_
 
MutatorUnifiedHeapMarkingVisitor marking_visitor_
 
UnifiedHeapConservativeMarkingVisitor conservative_marking_visitor_
 
std::shared_ptr<::heap::base::IncrementalMarkingSchedule > schedule_
 
UnifiedHeapConcurrentMarker concurrent_marker_
 

Additional Inherited Members

- Public Types inherited from cppgc::internal::MarkerBase
enum class  WriteBarrierType { kDijkstra , kSteele }
 
- Protected Types inherited from cppgc::internal::MarkerBase
using IncrementalMarkingTaskHandle = SingleThreadedHandle
 
- Protected Attributes inherited from cppgc::internal::MarkerBase
HeapBase & heap_
 
MarkingConfig config_ = MarkingConfig::Default()
 
cppgc::Platform * platform_
 
std::shared_ptr< cppgc::TaskRunner > foreground_task_runner_
 
IncrementalMarkingTaskHandle incremental_marking_handle_
 
IncrementalMarkingAllocationObserver incremental_marking_allocation_observer_
 
MarkingWorklists marking_worklists_
 
MutatorMarkingState mutator_marking_state_
 
size_t last_bytes_marked_ = 0
 
bool is_marking_ {false}
 
bool main_marking_disabled_for_testing_ {false}
 
bool visited_cross_thread_persistents_in_atomic_pause_ {false}
 
bool processed_cross_thread_weakness_ {false}
 
- Static Protected Attributes inherited from cppgc::internal::MarkerBase
static constexpr v8::base::TimeDelta kMaximumIncrementalStepDuration
 

Detailed Description

Definition at line 276 of file cpp-heap.cc.

Constructor & Destructor Documentation

◆ UnifiedHeapMarker()

v8::internal::UnifiedHeapMarker::UnifiedHeapMarker ( Heap * v8_heap,
cppgc::internal::HeapBase & cpp_heap,
std::shared_ptr<::heap::base::IncrementalMarkingSchedule > incremental_schedule,
cppgc::Platform * platform,
cppgc::internal::MarkingConfig config )

Definition at line 344 of file cpp-heap.cc.

◆ ~UnifiedHeapMarker()

v8::internal::UnifiedHeapMarker::~UnifiedHeapMarker ( )
finaldefault

Member Function Documentation

◆ AdvanceMarkingOnAllocationImpl()

void v8::internal::UnifiedHeapMarker::AdvanceMarkingOnAllocationImpl ( )
inlinefinalvirtual

Reimplemented from cppgc::internal::MarkerBase.

Definition at line 311 of file cpp-heap.cc.

◆ concurrent_marker()

cppgc::internal::ConcurrentMarkerBase & v8::internal::UnifiedHeapMarker::concurrent_marker ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 328 of file cpp-heap.cc.

◆ conservative_visitor()

UnifiedHeapConservativeMarkingVisitor & v8::internal::UnifiedHeapMarker::conservative_visitor ( )
inlinefinalvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 299 of file cpp-heap.cc.

◆ GetMarkingWorklists()

cppgc::internal::MarkingWorklists & v8::internal::UnifiedHeapMarker::GetMarkingWorklists ( )
inline

Definition at line 286 of file cpp-heap.cc.

◆ GetMutatorMarkingState()

cppgc::internal::MutatorMarkingState & v8::internal::UnifiedHeapMarker::GetMutatorMarkingState ( )
inline

Definition at line 290 of file cpp-heap.cc.

◆ GetMutatorUnifiedHeapMarkingState()

UnifiedHeapMarkingState & v8::internal::UnifiedHeapMarker::GetMutatorUnifiedHeapMarkingState ( )
inline

Definition at line 295 of file cpp-heap.cc.

◆ schedule()

::heap::base::IncrementalMarkingSchedule & v8::internal::UnifiedHeapMarker::schedule ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 332 of file cpp-heap.cc.

◆ ScheduleIncrementalMarkingTask()

void v8::internal::UnifiedHeapMarker::ScheduleIncrementalMarkingTask ( )
inlinefinalvirtual

Reimplemented from cppgc::internal::MarkerBase.

Definition at line 303 of file cpp-heap.cc.

◆ stack_visitor()

::heap::base::StackVisitor & v8::internal::UnifiedHeapMarker::stack_visitor ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 324 of file cpp-heap.cc.

◆ visitor()

cppgc::Visitor & v8::internal::UnifiedHeapMarker::visitor ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 322 of file cpp-heap.cc.

Member Data Documentation

◆ concurrent_marker_

UnifiedHeapConcurrentMarker v8::internal::UnifiedHeapMarker::concurrent_marker_
private

Definition at line 341 of file cpp-heap.cc.

◆ conservative_marking_visitor_

UnifiedHeapConservativeMarkingVisitor v8::internal::UnifiedHeapMarker::conservative_marking_visitor_
private

Definition at line 339 of file cpp-heap.cc.

◆ marking_visitor_

MutatorUnifiedHeapMarkingVisitor v8::internal::UnifiedHeapMarker::marking_visitor_
private

Definition at line 338 of file cpp-heap.cc.

◆ mutator_unified_heap_marking_state_

UnifiedHeapMarkingState v8::internal::UnifiedHeapMarker::mutator_unified_heap_marking_state_
private

Definition at line 337 of file cpp-heap.cc.

◆ schedule_

std::shared_ptr<::heap::base::IncrementalMarkingSchedule> v8::internal::UnifiedHeapMarker::schedule_
private

Definition at line 340 of file cpp-heap.cc.


The documentation for this class was generated from the following file: