Holoscan SDK v3.11.0

Template Class LockFreeQueue

Base Type

template<typename T>
class LockFreeQueue : public holoscan::DataLoggerQueue<T>

Lock-free queue implementation using MoodyCamel’s ConcurrentQueue.

This is a high-performance lock-free MPMC (Multiple Producer Multiple Consumer) queue that uses per-producer sub-queues for optimal concurrency.

Thread Safety:

  • Fully thread-safe for concurrent enqueue and dequeue operations

  • No locks or blocking operations (wait-free for producers, lock-free for consumers)

  • Safe to call from multiple threads simultaneously

Ordering Guarantees:

  • Maintains FIFO order per-producer (items from the same thread stay ordered)

  • Does NOT guarantee global FIFO order across multiple producers

  • Items from different threads may be interleaved in any order

Performance Characteristics:

  • Excellent throughput with minimal contention

  • size_approx() returns an estimate that may be stale immediately after return

Template Parameters

T – The type of elements stored in the queue

Public Functions

inline explicit LockFreeQueue(size_t capacity)

Construct a lock-free queue with the specified capacity.

Parameters

capacity – The target maximum capacity (note: ConcurrentQueue treats this as a hint)

inline virtual bool try_enqueue(T &&item) override

Attempt to enqueue an item (thread-safe).

Parameters

item – The item to enqueue (will be moved)

Returns

true if successfully enqueued, false if queue is full

inline virtual bool try_dequeue(T &item) override

Attempt to dequeue an item (thread-safe).

Parameters

item – Output parameter where the dequeued item will be moved

Returns

true if an item was dequeued, false if queue is empty

inline virtual size_t size_approx() const override

Get size of the queue (thread-safe).

Note: The accuracy of this value depends on the implementation:

  • LockFreeQueue: Returns an approximation that may be stale by the time it’s returned

  • OrderedQueue: Returns the exact size at the moment the mutex was acquired

Returns

Number of items in the queue (approximation or exact, depending on implementation)

Previous Class IOSpec::IOSize
Next Class Logger
© Copyright 2022-2026, NVIDIA. Last updated on Feb 4, 2026