UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ParkingLot.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"
8
9#include <type_traits>
10
11#define UE_API CORE_API
12
16namespace UE::ParkingLot
17{
18
19struct FWaitState final
20{
22 bool bDidWait = false;
24 bool bDidWake = false;
27};
28
29struct FWakeState final
30{
32 bool bDidWake = false;
34 bool bHasWaitingThreads = false;
35};
36
37namespace Private
38{
39UE_API FWaitState Wait(const void* Address, bool (*CanWait)(void*), void* CanWaitContext, void (*BeforeWait)(void*), void* BeforeWaitContext);
40UE_API FWaitState WaitFor(const void* Address, bool (*CanWait)(void*), void* CanWaitContext, void (*BeforeWait)(void*), void* BeforeWaitContext, FMonotonicTimeSpan WaitTime);
41UE_API FWaitState WaitUntil(const void* Address, bool (*CanWait)(void*), void* CanWaitContext, void (*BeforeWait)(void*), void* BeforeWaitContext, FMonotonicTimePoint WaitTime);
42UE_API void WakeOne(const void* Address, uint64 (*OnWakeState)(void*, FWakeState), void* OnWakeStateContext);
43} // Private
44
52inline FWaitState Wait(const void* Address, TFunctionWithContext<bool()> CanWait, TFunctionWithContext<void()> BeforeWait)
53{
54 return Private::Wait(Address, CanWait.GetFunction(), CanWait.GetContext(), BeforeWait.GetFunction(), BeforeWait.GetContext());
55}
56
66{
67 return Private::WaitFor(Address, CanWait.GetFunction(), CanWait.GetContext(), BeforeWait.GetFunction(), BeforeWait.GetContext(), WaitTime);
68}
69
79{
80 return Private::WaitUntil(Address, CanWait.GetFunction(), CanWait.GetContext(), BeforeWait.GetFunction(), BeforeWait.GetContext(), WaitTime);
81}
82
89inline void WakeOne(const void* Address, TFunctionWithContext<uint64(FWakeState)> OnWakeState)
90{
91 return Private::WakeOne(Address, OnWakeState.GetFunction(), OnWakeState.GetContext());
92}
93
100UE_API FWakeState WakeOne(const void* Address);
101
109UE_API uint32 WakeMultiple(const void* Address, uint32 WakeCount);
110
117UE_API uint32 WakeAll(const void* Address);
118
119} // UE::ParkingLot
120
121#undef UE_API
122
123#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_7
124#include "Templates/Function.h"
125#endif
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition SColorGradingComponentViewer.h:12
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition FunctionWithContext.h:37
Definition OverriddenPropertySet.cpp:45
UE_AUTORTFM_NOAUTORTFM FWaitState WaitFor(const void *Address, bool(*CanWait)(void *), void *CanWaitContext, void(*BeforeWait)(void *), void *BeforeWaitContext, FMonotonicTimeSpan WaitTime)
Definition ParkingLot.cpp:632
UE_AUTORTFM_NOAUTORTFM FWaitState Wait(const void *Address, bool(*CanWait)(void *), void *CanWaitContext, void(*BeforeWait)(void *), void *BeforeWaitContext)
Definition ParkingLot.cpp:504
UE_AUTORTFM_NOAUTORTFM void WakeOne(const void *Address, uint64(*OnWakeState)(void *, FWakeState), void *OnWakeStateContext)
Definition ParkingLot.cpp:651
UE_AUTORTFM_NOAUTORTFM FWaitState WaitUntil(const void *Address, bool(*CanWait)(void *), void *CanWaitContext, void(*BeforeWait)(void *), void *BeforeWaitContext, FMonotonicTimePoint WaitTime)
Definition ParkingLot.cpp:644
Definition ParkingLot.cpp:16
FWaitState Wait(const void *Address, TFunctionWithContext< bool()> CanWait, TFunctionWithContext< void()> BeforeWait)
Definition ParkingLot.h:52
FWaitState WaitFor(const void *Address, TFunctionWithContext< bool()> CanWait, TFunctionWithContext< void()> BeforeWait, FMonotonicTimeSpan WaitTime)
Definition ParkingLot.h:65
FWaitState WaitUntil(const void *Address, TFunctionWithContext< bool()> CanWait, TFunctionWithContext< void()> BeforeWait, FMonotonicTimePoint WaitTime)
Definition ParkingLot.h:78
Definition MonotonicTime.h:74
Definition MonotonicTime.h:20
Definition ParkingLot.h:20
bool bDidWake
Definition ParkingLot.h:24
bool bDidWait
Definition ParkingLot.h:22
uint64 WakeToken
Definition ParkingLot.h:26
Definition ParkingLot.h:30
bool bDidWake
Definition ParkingLot.h:32
bool bHasWaitingThreads
Definition ParkingLot.h:34