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

#include <marker.h>

Inheritance diagram for cppgc::internal::Marker:
Collaboration diagram for cppgc::internal::Marker:

Public Member Functions

 Marker (HeapBase &, cppgc::Platform *, MarkingConfig=MarkingConfig::Default())
 
- 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
 
ConservativeTracingVisitorconservative_visitor () final
 
heap::base::StackVisitorstack_visitor () final
 
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 ()
 
virtual void ScheduleIncrementalMarkingTask ()
 
bool IncrementalMarkingStep (StackState)
 
void AdvanceMarkingOnAllocation ()
 
virtual void AdvanceMarkingOnAllocationImpl ()
 
void HandleNotFullyConstructedObjects ()
 
void MarkStrongCrossThreadRoots ()
 

Private Attributes

MutatorMarkingVisitor marking_visitor_
 
ConservativeMarkingVisitor conservative_marking_visitor_
 
std::unique_ptr< heap::base::IncrementalMarkingScheduleschedule_
 
ConcurrentMarker 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 213 of file marker.h.

Constructor & Destructor Documentation

◆ Marker()

cppgc::internal::Marker::Marker ( HeapBase & heap,
cppgc::Platform * platform,
MarkingConfig config = MarkingConfig::Default() )

Definition at line 791 of file marker.cc.

Member Function Documentation

◆ concurrent_marker()

ConcurrentMarkerBase & cppgc::internal::Marker::concurrent_marker ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 228 of file marker.h.

◆ conservative_visitor()

ConservativeTracingVisitor & cppgc::internal::Marker::conservative_visitor ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 220 of file marker.h.

◆ schedule()

heap::base::IncrementalMarkingSchedule & cppgc::internal::Marker::schedule ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 230 of file marker.h.

◆ stack_visitor()

heap::base::StackVisitor & cppgc::internal::Marker::stack_visitor ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 224 of file marker.h.

◆ visitor()

cppgc::Visitor & cppgc::internal::Marker::visitor ( )
inlinefinalprotectedvirtual

Implements cppgc::internal::MarkerBase.

Definition at line 218 of file marker.h.

Member Data Documentation

◆ concurrent_marker_

ConcurrentMarker cppgc::internal::Marker::concurrent_marker_
private

Definition at line 238 of file marker.h.

◆ conservative_marking_visitor_

ConservativeMarkingVisitor cppgc::internal::Marker::conservative_marking_visitor_
private

Definition at line 236 of file marker.h.

◆ marking_visitor_

MutatorMarkingVisitor cppgc::internal::Marker::marking_visitor_
private

Definition at line 235 of file marker.h.

◆ schedule_

std::unique_ptr<heap::base::IncrementalMarkingSchedule> cppgc::internal::Marker::schedule_
private

Definition at line 237 of file marker.h.


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