UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AsyncInitBodyHelper.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Misc/ScopeExit.h"
7
8namespace Chaos
9{
10 namespace CVars
11 {
13 }
14
15 namespace Private
16 {
17 template<typename T>
19 {
21 : Lock(Chaos::CVars::bEnableAsyncInitBody ? &InLock : nullptr)
22 {
23 if (Lock)
24 {
25 Lock->WriteLock();
26 }
27 }
28
30 {
31 if (Lock)
32 {
33 Lock->WriteUnlock();
34 }
35 }
36
37 T* Lock;
38 };
39
40 template<typename T>
42 {
44 : Lock(Chaos::CVars::bEnableAsyncInitBody ? &InLock : nullptr)
45 {
46 if (Lock)
47 {
48 Lock->ReadLock();
49 }
50 }
51
53 {
54 if (Lock)
55 {
56 Lock->ReadUnlock();
57 }
58 }
59
60 T* Lock;
61 };
62 }
63}
64
65#define UE_CHAOS_ASYNC_INITBODY_WRITESCOPELOCK(x) Chaos::Private::FChaosAsyncInitBodyWriteScopeLock WriteScopeLock(x)
66#define UE_CHAOS_ASYNC_INITBODY_READSCOPELOCK(x) Chaos::Private::FChaosAsyncInitBodyReadScopeLock ReadScopeLock(x)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
CHAOS_API bool bEnableAsyncInitBody
Definition AsyncInitBodyHelper.cpp:10
Definition SkeletalMeshComponent.h:307
Definition OverriddenPropertySet.cpp:45
FAutoConsoleVariableRef CVars[]
Definition MassProcessingPhaseManager.cpp:29
Definition AsyncInitBodyHelper.h:42
T * Lock
Definition AsyncInitBodyHelper.h:60
FChaosAsyncInitBodyReadScopeLock(T &InLock)
Definition AsyncInitBodyHelper.h:43
~FChaosAsyncInitBodyReadScopeLock()
Definition AsyncInitBodyHelper.h:52
Definition AsyncInitBodyHelper.h:19
T * Lock
Definition AsyncInitBodyHelper.h:37
~FChaosAsyncInitBodyWriteScopeLock()
Definition AsyncInitBodyHelper.h:29
FChaosAsyncInitBodyWriteScopeLock(T &InLock)
Definition AsyncInitBodyHelper.h:20