Navigation
API > API/Runtime > API/Runtime/Core
| Name | FWaitingQueue |
| Type | class |
| Header File | /Engine/Source/Runtime/Core/Public/Async/Fundamental/WaitingQueue.h |
| Include Path | #include "Async/Fundamental/WaitingQueue.h" |
Syntax
class FWaitingQueue
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FWaitingQueue
(
TAlignedArray< FWaitEvent >& InNodesArray, |
Async/Fundamental/WaitingQueue.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bIsShuttingDown | std::atomic< bool > | Async/Fundamental/WaitingQueue.h | ||
| CreateThread | TFunction< void()> | Async/Fundamental/WaitingQueue.h | ||
| MaxThreadCount | uint32 | Async/Fundamental/WaitingQueue.h | ||
| NodesArray | TAlignedArray< FWaitEvent > & | Async/Fundamental/WaitingQueue.h | ||
| Oversubscription | std::atomic< uint32 > | Async/Fundamental/WaitingQueue.h | ||
| OversubscriptionLimitReachedEvent | FOversubscriptionLimitReached & | Async/Fundamental/WaitingQueue.h | ||
| StandbyState | std::atomic< uint64 > | Async/Fundamental/WaitingQueue.h | ||
| State | std::atomic< uint64 > | Async/Fundamental/WaitingQueue.h | ||
| ThreadCount | uint32 | Async/Fundamental/WaitingQueue.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool CancelWait
(
FWaitEvent* Node |
Step to run by normal workers if they detect new work after they called prepare wait. | Async/Fundamental/WaitingQueue.h | |
bool CommitStandby
(
FWaitEvent* Node, |
Second step to execute when no more work is found in the queues. | Async/Fundamental/WaitingQueue.h | |
bool CommitWait
(
FWaitEvent* Node, |
Second step run by normal workers when no more work is found in the queues. | Async/Fundamental/WaitingQueue.h | |
void ConditionalStandby
(
FWaitEvent* Node |
Immediately goes to sleep if oversubscription period is finished and we're over the allowed thread count. | Async/Fundamental/WaitingQueue.h | |
void DecrementOversubscription() |
Decrement oversubscription only, any active threads will finish their current task and will go to sleep if conditional standby determines we're now over the active thread count. | Async/Fundamental/WaitingQueue.h | |
void FinishShutdown() |
Async/Fundamental/WaitingQueue.h | ||
void IncrementOversubscription () |
Increment oversubscription and notify a thread if we're under the allowed thread count. | Async/Fundamental/WaitingQueue.h | |
void Init
(
uint32 InThreadCount, |
Async/Fundamental/WaitingQueue.h | ||
bool IsOversubscriptionLimitReached() |
Is the current waiting queue out of workers. | Async/Fundamental/WaitingQueue.h | |
int32 Notify
(
int32 Count |
Try to wake up the amount of workers passed in the parameters. | Async/Fundamental/WaitingQueue.h | |
void PrepareStandby
(
FWaitEvent* Node |
First step to execute when no more work is found in the queues. | Async/Fundamental/WaitingQueue.h | |
void PrepareWait
(
FWaitEvent* Node |
First step run by normal workers when no more work is found in the queues. | Async/Fundamental/WaitingQueue.h | |
void StartShutdown() |
Async/Fundamental/WaitingQueue.h |