Navigation
API > API/Runtime > API/Runtime/Core > API/Runtime/Core/Containers
References
| Module | Core |
| Header | /Engine/Source/Runtime/Core/Public/Containers/Queue.h |
| Include | #include "Containers/Queue.h" |
Syntax
template<typename T, EQueueMode Mode>
class TQueue
Remarks
Template for queues.
This template implements an unbounded non-intrusive queue using a lock-free linked list that stores copies of the queued items. The template can operate in two modes: Multiple-producers single-consumer (MPSC) and Single-producer single-consumer (SPSC).
The queue is thread-safe in both modes. The Dequeue() method ensures thread-safety by writing it in a way that does not depend on possible instruction reordering on the CPU. The Enqueue() method uses an atomic compare-and-swap in multiple-producers scenarios.
Constructors
| Type | Name | Description | |
|---|---|---|---|
TQueue () |
Default constructor. |
Destructors
| Type | Name | Description | |
|---|---|---|---|
~TQueue () |
Destructor. |
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | Dequeue
(
FElementType& OutItem |
Removes and returns the item from the tail of the queue.To be called only from consumer thread. | |
| void | Empty () |
Empty the queue, discarding all items.To be called only from consumer thread. | |
| bool | Enqueue
(
const FElementType& Item |
Adds an item to the head of the queue.To be called only from producer thread(s). | |
| bool | Enqueue
(
FElementType&& Item |
Adds an item to the head of the queue.To be called only from producer thread(s). | |
| bool | IsEmpty () |
Checks whether the queue is empty.To be called only from consumer thread. | |
| FElementType * | Peek () |
Peek at the queue's tail item without removing it. | |
| const FElementType * | Peek () |
||
| bool | Peek
(
FElementType& OutItem |
Peeks at the queue's tail item without removing it.To be called only from consumer thread. | |
| bool | Pop () |
Removes the item from the tail of the queue.To be called only from consumer thread. |
Typedefs
| Name | Description |
|---|---|
| FElementType |