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

#include <concurrent-marker.h>

Inheritance diagram for cppgc::internal::ConcurrentMarkerBase:
Collaboration diagram for cppgc::internal::ConcurrentMarkerBase:

Public Member Functions

 ConcurrentMarkerBase (HeapBase &, MarkingWorklists &, heap::base::IncrementalMarkingSchedule &, cppgc::Platform *)
 
virtual ~ConcurrentMarkerBase ()
 
 ConcurrentMarkerBase (const ConcurrentMarkerBase &)=delete
 
ConcurrentMarkerBaseoperator= (const ConcurrentMarkerBase &)=delete
 
void Start ()
 
bool Join ()
 
bool Cancel ()
 
void NotifyIncrementalMutatorStepCompleted ()
 
void NotifyOfWorkIfNeeded (cppgc::TaskPriority priority)
 
bool IsActive () const
 
HeapBaseheap () const
 
MarkingWorklistsmarking_worklists () const
 
heap::base::IncrementalMarkingScheduleincremental_marking_schedule () const
 
void AddConcurrentlyMarkedBytes (size_t marked_bytes)
 
size_t concurrently_marked_bytes () const
 
virtual std::unique_ptr< VisitorCreateConcurrentMarkingVisitor (ConcurrentMarkingState &) const =0
 

Protected Member Functions

void IncreaseMarkingPriorityIfNeeded ()
 

Private Attributes

HeapBaseheap_
 
MarkingWorklistsmarking_worklists_
 
heap::base::IncrementalMarkingScheduleincremental_marking_schedule_
 
cppgc::Platform *const platform_
 
std::unique_ptr< JobHandleconcurrent_marking_handle_ {nullptr}
 
std::atomic< size_t > concurrently_marked_bytes_ = 0
 
bool concurrent_marking_priority_increased_ {false}
 

Detailed Description

Definition at line 17 of file concurrent-marker.h.

Constructor & Destructor Documentation

◆ ConcurrentMarkerBase() [1/2]

cppgc::internal::ConcurrentMarkerBase::ConcurrentMarkerBase ( HeapBase & heap,
MarkingWorklists & marking_worklists,
heap::base::IncrementalMarkingSchedule & incremental_marking_schedule,
cppgc::Platform * platform )

Definition at line 176 of file concurrent-marker.cc.

◆ ~ConcurrentMarkerBase()

cppgc::internal::ConcurrentMarkerBase::~ConcurrentMarkerBase ( )
virtual

Definition at line 218 of file concurrent-marker.cc.

◆ ConcurrentMarkerBase() [2/2]

cppgc::internal::ConcurrentMarkerBase::ConcurrentMarkerBase ( const ConcurrentMarkerBase & )
delete

Member Function Documentation

◆ AddConcurrentlyMarkedBytes()

void cppgc::internal::ConcurrentMarkerBase::AddConcurrentlyMarkedBytes ( size_t marked_bytes)

Definition at line 213 of file concurrent-marker.cc.

Here is the call graph for this function:

◆ Cancel()

bool cppgc::internal::ConcurrentMarkerBase::Cancel ( )

Definition at line 201 of file concurrent-marker.cc.

◆ concurrently_marked_bytes()

size_t cppgc::internal::ConcurrentMarkerBase::concurrently_marked_bytes ( ) const
inline

Definition at line 45 of file concurrent-marker.h.

Here is the caller graph for this function:

◆ CreateConcurrentMarkingVisitor()

virtual std::unique_ptr< Visitor > cppgc::internal::ConcurrentMarkerBase::CreateConcurrentMarkingVisitor ( ConcurrentMarkingState & ) const
pure virtual

◆ heap()

HeapBase & cppgc::internal::ConcurrentMarkerBase::heap ( ) const
inline

Definition at line 38 of file concurrent-marker.h.

Here is the caller graph for this function:

◆ IncreaseMarkingPriorityIfNeeded()

void cppgc::internal::ConcurrentMarkerBase::IncreaseMarkingPriorityIfNeeded ( )
protected

Definition at line 240 of file concurrent-marker.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ incremental_marking_schedule()

heap::base::IncrementalMarkingSchedule & cppgc::internal::ConcurrentMarkerBase::incremental_marking_schedule ( ) const
inline

Definition at line 40 of file concurrent-marker.h.

Here is the caller graph for this function:

◆ IsActive()

bool cppgc::internal::ConcurrentMarkerBase::IsActive ( ) const

Definition at line 209 of file concurrent-marker.cc.

Here is the caller graph for this function:

◆ Join()

bool cppgc::internal::ConcurrentMarkerBase::Join ( )

Definition at line 193 of file concurrent-marker.cc.

Here is the caller graph for this function:

◆ marking_worklists()

MarkingWorklists & cppgc::internal::ConcurrentMarkerBase::marking_worklists ( ) const
inline

Definition at line 39 of file concurrent-marker.h.

◆ NotifyIncrementalMutatorStepCompleted()

void cppgc::internal::ConcurrentMarkerBase::NotifyIncrementalMutatorStepCompleted ( )

Definition at line 223 of file concurrent-marker.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NotifyOfWorkIfNeeded()

void cppgc::internal::ConcurrentMarkerBase::NotifyOfWorkIfNeeded ( cppgc::TaskPriority priority)

Definition at line 233 of file concurrent-marker.cc.

Here is the caller graph for this function:

◆ operator=()

ConcurrentMarkerBase & cppgc::internal::ConcurrentMarkerBase::operator= ( const ConcurrentMarkerBase & )
delete

◆ Start()

void cppgc::internal::ConcurrentMarkerBase::Start ( )

Definition at line 185 of file concurrent-marker.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ concurrent_marking_handle_

std::unique_ptr<JobHandle> cppgc::internal::ConcurrentMarkerBase::concurrent_marking_handle_ {nullptr}
private

Definition at line 62 of file concurrent-marker.h.

◆ concurrent_marking_priority_increased_

bool cppgc::internal::ConcurrentMarkerBase::concurrent_marking_priority_increased_ {false}
private

Definition at line 65 of file concurrent-marker.h.

◆ concurrently_marked_bytes_

std::atomic<size_t> cppgc::internal::ConcurrentMarkerBase::concurrently_marked_bytes_ = 0
private

Definition at line 64 of file concurrent-marker.h.

◆ heap_

HeapBase& cppgc::internal::ConcurrentMarkerBase::heap_
private

Definition at line 56 of file concurrent-marker.h.

◆ incremental_marking_schedule_

heap::base::IncrementalMarkingSchedule& cppgc::internal::ConcurrentMarkerBase::incremental_marking_schedule_
private

Definition at line 58 of file concurrent-marker.h.

◆ marking_worklists_

MarkingWorklists& cppgc::internal::ConcurrentMarkerBase::marking_worklists_
private

Definition at line 57 of file concurrent-marker.h.

◆ platform_

cppgc::Platform* const cppgc::internal::ConcurrentMarkerBase::platform_
private

Definition at line 59 of file concurrent-marker.h.


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