Navigation
API > API/Runtime > API/Runtime/Core
Multi-producer/multi-consumer unbounded concurrent queue (implemented as a Stack) that is atomically consumed and is reset to its default empty state. Validated and run though atomic race detector.
| Name | TConsumeAllMpmcQueue |
| Type | class |
| Header File | /Engine/Source/Runtime/Core/Public/Containers/ConsumeAllMpmcQueue.h |
| Include Path | #include "Containers/ConsumeAllMpmcQueue.h" |
Syntax
template<typename T, typename AllocatorType>
class TConsumeAllMpmcQueue
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Containers/ConsumeAllMpmcQueue.h | |||
| Containers/ConsumeAllMpmcQueue.h | |||
TConsumeAllMpmcQueue
(
const TConsumeAllMpmcQueue& |
Containers/ConsumeAllMpmcQueue.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
~TConsumeAllMpmcQueue() |
Containers/ConsumeAllMpmcQueue.h |
Structs
| Name | Remarks |
|---|---|
| FNode |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| Head | std::atomic< FNode * > | Containers/ConsumeAllMpmcQueue.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
EConsumeAllMpmcQueueResult ConsumeAllFifo
(
const F& Consumer |
Take all items off the Queue atomically and consumes them in FIFO order at the cost of the reversing the Links once returns EConsumeAllMpmcQueueResult::WasEmpty if the Queue was empty or EConsumeAllMpmcQueueResult::HadItems if there were items to consume | Containers/ConsumeAllMpmcQueue.h | |
EConsumeAllMpmcQueueResult ConsumeAllLifo
(
const F& Consumer |
Take all items off the Queue atomically and consumes them in LIFO order returns EConsumeAllMpmcQueueResult::WasEmpty if the Queue was empty or EConsumeAllMpmcQueueResult::HadItems if there were items to consume | Containers/ConsumeAllMpmcQueue.h | |
bool IsEmpty() |
The result can be relied upon only in special cases (e.g. debug checks), as the state can change concurrently. use with caution | Containers/ConsumeAllMpmcQueue.h | |
EConsumeAllMpmcQueueResult ProduceItem
(
ArgTypes&&... Args |
Push an Item to the Queue and returns EConsumeAllMpmcQueueResult::WasEmpty if the Queue was empty before or EConsumeAllMpmcQueueResult::HadItems if there were already items in it | Containers/ConsumeAllMpmcQueue.h |
Operators
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
TConsumeAllMpmcQueue & operator=
(
const TConsumeAllMpmcQueue& |
Containers/ConsumeAllMpmcQueue.h | ||
| Containers/ConsumeAllMpmcQueue.h |