TQueue

Template for queues.

Windows
MacOS
Linux

References

Module

Core

Header

/Engine/Source/Runtime/Core/Public/Containers/Queue.h

Include

#include "Containers/Queue.h"

Syntax

template<typename ItemType, 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

Name Description

Public function

TQueue()

Default constructor.

Destructors

Name Description

Public function

~TQueue()

Destructor.

Functions

Name Description

Public function

bool

 

Dequeue

(
    ItemType& OutItem
)

Removes and returns the item from the tail of the queue.

Public function

void

 

Empty()

Empty the queue, discarding all items.

@note To be called only from consumer thread.

Public function

bool

 

Enqueue

(
    const ItemType& Item
)

Adds an item to the head of the queue.

Public function

bool

 

Enqueue

(
    ItemType&& Item
)

Adds an item to the head of the queue.

Public function Const

bool

 

IsEmpty()

Checks whether the queue is empty.

Public function

ItemType ...

 

Peek()

Peek at the queue's tail item without removing it.

Public function Const

const ItemTy...

 

Peek()

Public function Const

bool

 

Peek

(
    ItemType& OutItem
)

Peeks at the queue's tail item without removing it.

Public function

bool

 

Pop()

Removes the item from the tail of the queue.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss