UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
QueuedThreadPool.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 "Containers/Array.h"
9
10class IQueuedWork;
11
14{
15 Blocking = 0,
16 Highest = 1,
17 High = 2,
18 Normal = 3,
19 Low = 4,
20 Lowest = 5,
21 Count
22};
23
25{
26 switch (Priority)
27 {
29 return TEXT("Blocking");
31 return TEXT("Highest");
33 return TEXT("High");
35 return TEXT("Normal");
37 return TEXT("Low");
39 return TEXT("Lowest");
41 default:
42 check(false);
43 return TEXT("Unknown");
44 }
45}
46
97
105{
106public:
116 virtual bool Create(uint32 InNumQueuedThreads, uint32 StackSize = (32 * 1024), EThreadPriority ThreadPriority = TPri_Normal, const TCHAR* Name = TEXT("UnknownThreadPool")) = 0;
117
129 virtual bool CreateForkable(uint32 InNumQueuedThreads, uint32 StackSize = (32 * 1024), EThreadPriority ThreadPriority = TPri_Normal, const TCHAR* Name = TEXT("UnknownThreadPool"))
130 {
131 return false;
132 }
133
135 virtual void Destroy() = 0;
136
146
155
159 virtual int32 GetNumThreads() const = 0;
160
161public:
164
165public:
166
173
180};
181
186
188
190
191#if WITH_EDITOR
193#endif
#define check(expr)
Definition AssertionMacros.h:314
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EThreadPriority
Definition GenericPlatformAffinity.h:26
@ TPri_Normal
Definition GenericPlatformAffinity.h:27
EQueuedWorkPriority
Definition QueuedThreadPool.h:14
CORE_API FQueuedThreadPool * GIOThreadPool
Definition ThreadingBase.cpp:50
CORE_API FQueuedThreadPool * GThreadPool
Definition ThreadingBase.cpp:48
const TCHAR * LexToString(EQueuedWorkPriority Priority)
Definition QueuedThreadPool.h:24
CORE_API FQueuedThreadPool * GBackgroundPriorityThreadPool
Definition ThreadingBase.cpp:52
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition QueuedThreadPool.h:105
virtual bool Create(uint32 InNumQueuedThreads, uint32 StackSize=(32 *1024), EThreadPriority ThreadPriority=TPri_Normal, const TCHAR *Name=TEXT("UnknownThreadPool"))=0
static CORE_API FQueuedThreadPool * Allocate()
Definition ThreadingBase.cpp:1416
CORE_API FQueuedThreadPool()
virtual int32 GetNumThreads() const =0
virtual bool RetractQueuedWork(IQueuedWork *InQueuedWork)=0
virtual CORE_API ~FQueuedThreadPool()
virtual void Destroy()=0
virtual void AddQueuedWork(IQueuedWork *InQueuedWork, EQueuedWorkPriority InQueuedWorkPriority=EQueuedWorkPriority::Normal)=0
static CORE_API uint32 OverrideStackSize
Definition QueuedThreadPool.h:179
virtual bool CreateForkable(uint32 InNumQueuedThreads, uint32 StackSize=(32 *1024), EThreadPriority ThreadPriority=TPri_Normal, const TCHAR *Name=TEXT("UnknownThreadPool"))
Definition QueuedThreadPool.h:129
Definition QueuedThreadPool.h:53
CORE_API IQueuedWork * Peek(EQueuedWorkPriority *OutDequeuedWorkPriority=nullptr) const
Definition ThreadingBase.cpp:1006
CORE_API void Reset()
Definition ThreadingBase.cpp:1028
CORE_API bool Retract(IQueuedWork *InQueuedWork)
Definition ThreadingBase.cpp:962
CORE_API void Sort(EQueuedWorkPriority InPriorityBucket, TFunctionRef< bool(const IQueuedWork *A, const IQueuedWork *B)> Predicate)
Definition ThreadingBase.cpp:1035
CORE_API IQueuedWork * Dequeue(EQueuedWorkPriority *OutDequeuedWorkPriority=nullptr)
Definition ThreadingBase.cpp:976
int32 Num() const
Definition QueuedThreadPool.h:85
CORE_API FThreadPoolPriorityQueue()
Definition ThreadingBase.cpp:941
CORE_API void Enqueue(IQueuedWork *InQueuedWork, EQueuedWorkPriority InPriority=EQueuedWorkPriority::Normal)
Definition ThreadingBase.cpp:946
Definition IQueuedWork.h:62
Definition Array.h:670
Definition Atomic.h:538
Definition AssetRegistryState.h:50