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

#include <marking-visitor.h>

Inheritance diagram for cppgc::internal::ConcurrentMarkingVisitor:
Collaboration diagram for cppgc::internal::ConcurrentMarkingVisitor:

Public Member Functions

 ConcurrentMarkingVisitor (HeapBase &, ConcurrentMarkingState &)
 
 ~ConcurrentMarkingVisitor () override=default
 
- Public Member Functions inherited from cppgc::internal::MarkingVisitorBase
 MarkingVisitorBase (HeapBase &, BasicMarkingState &)
 
 ~MarkingVisitorBase () override=default
 
- Public Member Functions inherited from cppgc::internal::VisitorBase
 VisitorBase ()
 
 ~VisitorBase () override=default
 
 VisitorBase (const VisitorBase &)=delete
 
VisitorBaseoperator= (const VisitorBase &)=delete
 
- Public Member Functions inherited from cppgc::Visitor
 Visitor (Key)
 
virtual ~Visitor ()=default
 
template<typename T >
void Trace (const Member< T > &member)
 
template<typename T >
void Trace (const WeakMember< T > &weak_member)
 
template<typename T >
void TraceMultiple (const subtle::UncompressedMember< T > *start, size_t len)
 
template<typename T , std::enable_if_t<!std::is_same_v< Member< T >, subtle::UncompressedMember< T > > > * = nullptr>
void TraceMultiple (const Member< T > *start, size_t len)
 
template<typename T >
void Trace (const T &object)
 
template<typename T >
void TraceMultiple (const T *start, size_t len)
 
template<typename T , void(T::*)(const LivenessBroker &) method>
void RegisterWeakCallbackMethod (const T *object)
 
template<typename K , typename V >
void Trace (const EphemeronPair< K, V > &ephemeron_pair)
 
template<typename KeyType , typename ValueType >
void TraceEphemeron (const WeakMember< KeyType > &weak_member_key, const Member< ValueType > *member_value)
 
template<typename KeyType , typename ValueType >
void TraceEphemeron (const WeakMember< KeyType > &weak_member_key, const ValueType *value)
 
template<typename T >
void TraceStrongly (const WeakMember< T > &weak_member)
 
template<typename T >
void TraceStrongContainer (const T *object)
 
template<typename T >
void TraceWeakContainer (const T *object, WeakCallback callback, const void *callback_data)
 
template<typename T >
void RegisterMovableReference (const T **slot)
 

Protected Member Functions

bool DeferTraceToMutatorThreadIfConcurrent (const void *, TraceCallback, size_t) final
 
- Protected Member Functions inherited from cppgc::internal::MarkingVisitorBase
void Visit (const void *, TraceDescriptor) final
 
void VisitMultipleUncompressedMember (const void *, size_t, TraceDescriptorCallback) final
 
void VisitWeak (const void *, TraceDescriptor, WeakCallback, const void *) final
 
void VisitEphemeron (const void *, const void *, TraceDescriptor) final
 
void VisitWeakContainer (const void *object, TraceDescriptor strong_desc, TraceDescriptor weak_desc, WeakCallback callback, const void *data) final
 
void RegisterWeakCallback (WeakCallback, const void *) final
 
void HandleMovableReference (const void **) final
 
- Protected Member Functions inherited from cppgc::Visitor

Additional Inherited Members

- Static Public Member Functions inherited from cppgc::internal::VisitorBase
template<typename T >
static void TraceRawForTesting (cppgc::Visitor *visitor, const T *t)
 
- Protected Attributes inherited from cppgc::internal::MarkingVisitorBase
BasicMarkingStatemarking_state_
 

Detailed Description

Definition at line 53 of file marking-visitor.h.

Constructor & Destructor Documentation

◆ ConcurrentMarkingVisitor()

cppgc::internal::ConcurrentMarkingVisitor::ConcurrentMarkingVisitor ( HeapBase & heap,
ConcurrentMarkingState & marking_state )

Definition at line 140 of file marking-visitor.cc.

◆ ~ConcurrentMarkingVisitor()

cppgc::internal::ConcurrentMarkingVisitor::~ConcurrentMarkingVisitor ( )
overridedefault

Member Function Documentation

◆ DeferTraceToMutatorThreadIfConcurrent()

bool cppgc::internal::ConcurrentMarkingVisitor::DeferTraceToMutatorThreadIfConcurrent ( const void * parameter,
TraceCallback callback,
size_t deferred_size )
finalprotectedvirtual

Defers tracing an object from a concurrent thread to the mutator thread. Should be called by Trace methods of types that are not safe to trace concurrently.

Parameters
parametertells the trace callback which object was deferred.
callbackto be invoked for tracing on the mutator thread.
deferred_sizesize of deferred object.
Returns
false if the object does not need to be deferred (i.e. currently traced on the mutator thread) and true otherwise (i.e. currently traced on a concurrent thread).

Reimplemented from cppgc::Visitor.

Definition at line 148 of file marking-visitor.cc.

Here is the call graph for this function:

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