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::MarkingWorklistsGetMarkingWorklists ()
 
cppgc::internal::MutatorMarkingStateGetMutatorMarkingState ()
 
UnifiedHeapMarkingStateGetMutatorUnifiedHeapMarkingState ()
 
UnifiedHeapConservativeMarkingVisitor & conservative_visitor () final
 
void ScheduleIncrementalMarkingTask () final
 
void AdvanceMarkingOnAllocationImpl () final
 
- Public Member Functions inherited from cppgc::internal::MarkerBase
virtual ~MarkerBase ()
 
 MarkerBase (const MarkerBase &)=delete
 
MarkerBaseoperator= (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 &)
 
HeapBaseheap ()
 
cppgc::VisitorVisitor ()
 
bool IsMarking () const
 
void SetMainThreadMarkingDisabledForTesting (bool)
 
void WaitForConcurrentMarkingForTesting ()
 
void ClearAllWorklistsForTesting ()
 
bool IncrementalMarkingStepForTesting (StackState)
 
MarkingWorklistsMarkingWorklistsForTesting ()
 
MutatorMarkingStateMutatorMarkingStateForTesting ()
 

Protected Member Functions

cppgc::Visitorvisitor () final
 
::heap::base::StackVisitorstack_visitor () final
 
cppgc::internal::ConcurrentMarkerBaseconcurrent_marker () final
 
::heap::base::IncrementalMarkingScheduleschedule () 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::IncrementalMarkingScheduleschedule_
 
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
HeapBaseheap_
 
MarkingConfig config_ = MarkingConfig::Default()
 
cppgc::Platformplatform_
 
std::shared_ptr< cppgc::TaskRunnerforeground_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: