libe3 0.2.5
C++ library for E3AP RAN vendor integration
Loading...
Searching...
No Matches
lockfree_queue.hpp File Reference

Lock-free bounded blocking queue for the E3AP hot paths. More...

#include "types.hpp"
#include "mpmc_queue.hpp"
#include "logger.hpp"
#include <atomic>
#include <optional>
#include <chrono>
#include <thread>
#include <mutex>
#include <condition_variable>

Go to the source code of this file.

Classes

class  libe3::LockFreeQueue< T >
 Lock-free bounded blocking queue. More...

Namespaces

namespace  libe3

Detailed Description

Lock-free bounded blocking queue for the E3AP hot paths.

Wraps the lock-free MPMC ring buffer (see mpmc_queue.hpp) in a small, reusable object that adds blocking pop variants and shutdown semantics. It eliminates mutex contention on the hot publish path and reduces latency jitter in sub-millisecond control loops.

libe3 uses two specialisations:

  • LockFreeQueue<Pdu> — outbound E3AP PDUs (publisher/outbound thread consumes; many threads produce).
  • LockFreeQueue<DAppReport> — inbound dApp reports handed from the RAN inbound thread to the report worker thread.

SPDX-FileCopyrightText: Copyright (c) 2026 Northeastern University SPDX-License-Identifier: Apache-2.0

Definition in file lockfree_queue.hpp.