UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::GC::FReachabilityAnalysisState Class Reference

#include <ReachabilityAnalysisState.h>

Public Member Functions

 FReachabilityAnalysisState ()=default
 
void StartTimer (double InTimeLimit)
 
const UE::GC::FProcessorStatsGetStats () const
 
bool IsSuspended () const
 
void CollectGarbage (EObjectFlags KeepFlags, bool bFullPurge)
 
void PerformReachabilityAnalysisAndConditionallyPurgeGarbage (bool bReachabilityUsingTimeLimit)
 
FORCEINLINE bool IsTimeLimitExceeded () const
 
FORCEINLINE int32 GetNumWorkers () const
 
FORCEINLINE FWorkerContext ** GetContextArray ()
 
FORCEINLINE int32 GetNumIterations () const
 
void Init ()
 
void SetupWorkers (int32 InNumWorkers)
 
void PerformReachabilityAnalysis ()
 
void UpdateStats (const UE::GC::FProcessorStats &InStats)
 
bool CheckIfAnyContextIsSuspended ()
 
void ResetWorkers ()
 
void FinishIteration ()
 

Static Public Attributes

static constexpr int32 MaxWorkers = 16
 

Detailed Description

Reachability analysis state holds information about suspended worker contexts.

Constructor & Destructor Documentation

◆ FReachabilityAnalysisState()

UE::GC::FReachabilityAnalysisState::FReachabilityAnalysisState ( )
default

Member Function Documentation

◆ CheckIfAnyContextIsSuspended()

bool UE::GC::FReachabilityAnalysisState::CheckIfAnyContextIsSuspended ( )

Checks if any of the active worker contexts is suspended and updates the IsSuspended state

◆ CollectGarbage()

void UE::GC::FReachabilityAnalysisState::CollectGarbage ( EObjectFlags  KeepFlags,
bool  bFullPurge 
)

Kicks off new Garbage Collection cycle

◆ FinishIteration()

void UE::GC::FReachabilityAnalysisState::FinishIteration ( )

Marks the end of reachability iteration

◆ GetContextArray()

FORCEINLINE FWorkerContext ** UE::GC::FReachabilityAnalysisState::GetContextArray ( )
inline

◆ GetNumIterations()

FORCEINLINE int32 UE::GC::FReachabilityAnalysisState::GetNumIterations ( ) const
inline

◆ GetNumWorkers()

FORCEINLINE int32 UE::GC::FReachabilityAnalysisState::GetNumWorkers ( ) const
inline

◆ GetStats()

const UE::GC::FProcessorStats & UE::GC::FReachabilityAnalysisState::GetStats ( ) const
inline

◆ Init()

void UE::GC::FReachabilityAnalysisState::Init ( )

Initializes reachability analysis

◆ IsSuspended()

bool UE::GC::FReachabilityAnalysisState::IsSuspended ( ) const
inline

◆ IsTimeLimitExceeded()

FORCEINLINE bool UE::GC::FReachabilityAnalysisState::IsTimeLimitExceeded ( ) const
inline

Checks if Time Limit has been exceeded. This function needs to be super fast as it's called very frequently.

◆ PerformReachabilityAnalysis()

void UE::GC::FReachabilityAnalysisState::PerformReachabilityAnalysis ( )

Main Garbage Collection function executed on Reachability Analysis Thread when StartEvent has been triggered

◆ PerformReachabilityAnalysisAndConditionallyPurgeGarbage()

void UE::GC::FReachabilityAnalysisState::PerformReachabilityAnalysisAndConditionallyPurgeGarbage ( bool  bReachabilityUsingTimeLimit)

Performs Reachability Analysis (also incrementally) and destroys objects (also incrementally)

◆ ResetWorkers()

void UE::GC::FReachabilityAnalysisState::ResetWorkers ( )

Resets workers after reachability analysis is fully complete

◆ SetupWorkers()

void UE::GC::FReachabilityAnalysisState::SetupWorkers ( int32  InNumWorkers)

Initializes expected number of worker threads

◆ StartTimer()

void UE::GC::FReachabilityAnalysisState::StartTimer ( double  InTimeLimit)
inline

◆ UpdateStats()

void UE::GC::FReachabilityAnalysisState::UpdateStats ( const UE::GC::FProcessorStats InStats)

Updates reachability analysis state after RA iteration

Member Data Documentation

◆ MaxWorkers

constexpr int32 UE::GC::FReachabilityAnalysisState::MaxWorkers = 16
staticconstexpr

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