Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QV4::GCStateMachine Struct Reference

#include <qv4mm_p.h>

Collaboration diagram for QV4::GCStateMachine:

Classes

struct  GCStateInfo
struct  StepTiming

Public Types

enum  GCState {
  MarkStart = 0 , MarkGlobalObject , MarkJSStack , InitMarkPersistentValues ,
  MarkPersistentValues , InitMarkWeakValues , MarkWeakValues , MarkDrain ,
  MarkReady , InitCallDestroyObjects , CrossValidateIncrementalMarkPhase , CallDestroyObjects ,
  FreeWeakMaps , FreeWeakSets , HandleQObjectWrappers , DoSweep ,
  Invalid , Count
}
using ExtraData = GCStateInfo::ExtraData

Public Member Functions

 GCStateMachine ()
void step ()
bool inProgress ()
void reset ()
Q_QML_EXPORT void transition ()
void handleTimeout (GCState state)

Public Attributes

GCState state {GCState::Invalid}
std::chrono::microseconds timeLimit {}
QDeadlineTimer deadline
std::array< GCStateInfo, GCState::Count > stateInfoMap
std::array< StepTiming, GCState::Count > executionTiming {}
MemoryManagermm = nullptr
ExtraData stateData
bool collectTimings = false

Detailed Description

Definition at line 37 of file qv4mm_p.h.

Member Typedef Documentation

◆ ExtraData

Member Enumeration Documentation

◆ GCState

Enumerator
MarkStart 
MarkGlobalObject 
MarkJSStack 
InitMarkPersistentValues 
MarkPersistentValues 
InitMarkWeakValues 
MarkWeakValues 
MarkDrain 
MarkReady 
InitCallDestroyObjects 
CrossValidateIncrementalMarkPhase 
CallDestroyObjects 
FreeWeakMaps 
FreeWeakSets 
HandleQObjectWrappers 
DoSweep 
Invalid 
Count 

Definition at line 41 of file qv4mm_p.h.

Constructor & Destructor Documentation

◆ GCStateMachine()

QV4::GCStateMachine::GCStateMachine ( )

Definition at line 1557 of file qv4mm.cpp.

Member Function Documentation

◆ handleTimeout()

void QV4::GCStateMachine::handleTimeout ( GCState state)
inline

Definition at line 112 of file qv4mm_p.h.

◆ inProgress()

bool QV4::GCStateMachine::inProgress ( )
inline

Definition at line 102 of file qv4mm_p.h.

Referenced by step().

Here is the caller graph for this function:

◆ reset()

void QV4::GCStateMachine::reset ( )
inline

Definition at line 106 of file qv4mm_p.h.

Referenced by step().

Here is the caller graph for this function:

◆ step()

void QV4::GCStateMachine::step ( )
inline

Definition at line 95 of file qv4mm_p.h.

References inProgress(), reset(), and transition().

Here is the call graph for this function:

◆ transition()

void QV4::GCStateMachine::transition ( )

Definition at line 1611 of file qv4mm.cpp.

Referenced by step().

Here is the caller graph for this function:

Member Data Documentation

◆ collectTimings

bool QV4::GCStateMachine::collectTimings = false

Definition at line 86 of file qv4mm_p.h.

◆ deadline

QDeadlineTimer QV4::GCStateMachine::deadline

Definition at line 81 of file qv4mm_p.h.

◆ executionTiming

std::array<StepTiming, GCState::Count> QV4::GCStateMachine::executionTiming {}

Definition at line 83 of file qv4mm_p.h.

◆ mm

MemoryManager* QV4::GCStateMachine::mm = nullptr

Definition at line 84 of file qv4mm_p.h.

◆ state

GCState QV4::GCStateMachine::state {GCState::Invalid}

Definition at line 79 of file qv4mm_p.h.

◆ stateData

ExtraData QV4::GCStateMachine::stateData

Definition at line 85 of file qv4mm_p.h.

◆ stateInfoMap

std::array<GCStateInfo, GCState::Count> QV4::GCStateMachine::stateInfoMap

Definition at line 82 of file qv4mm_p.h.

◆ timeLimit

std::chrono::microseconds QV4::GCStateMachine::timeLimit {}

Definition at line 80 of file qv4mm_p.h.


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