Source: libatomic-queue Priority: optional Maintainer: Debian Med Packaging Team Uploaders: Steffen Moeller , Andreas Tille , Nilesh Patra Build-Depends: debhelper-compat (= 13), d-shlibs, libboost-dev, libboost-test-dev, libconcurrentqueue-dev, libreaderwriterqueue-dev, libtbb-dev, libxenium-dev (>= 0.0.2+ds-2~) Standards-Version: 4.5.1 Section: libs Homepage: https://github.com/max0x7ba/atomic_queue Vcs-Browser: https://salsa.debian.org/med-team/libatomic-queue Vcs-Git: https://salsa.debian.org/med-team/libatomic-queue.git Rules-Requires-Root: no Package: libatomic-queue0 Architecture: any Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} Description: C++ atomic_queue library C++11 multiple-producer-multiple-consumer lockless queues based on circular buffer with std::atomic. The main design principle these queues follow is simplicity: the bare minimum of atomic operations, fixed size buffer, value semantics. . The circular buffer side-steps the memory reclamation problem inherent in linked-list based queues for the price of fixed buffer size. See Effective memory reclamation for lock-free data structures in C++ for more details. . These qualities are also limitations: . * The maximum queue size must be set at compile time or construction time. * There are no OS-blocking push/pop functions. . Nevertheless, ultra-low-latency applications need just that and nothing more. The simplicity pays off, see the throughput and latency benchmarks. . Available containers are: . * AtomicQueue - a fixed size ring-buffer for atomic elements. * OptimistAtomicQueue - a faster fixed size ring-buffer for atomic elements which busy-waits when empty or full. * AtomicQueue2 - a fixed size ring-buffer for non-atomic elements. * OptimistAtomicQueue2 - a faster fixed size ring-buffer for non-atomic elements which busy-waits when empty or full. . These containers have corresponding AtomicQueueB, OptimistAtomicQueueB, AtomicQueueB2, OptimistAtomicQueueB2 versions where the buffer size is specified as an argument to the constructor. . This package contains the dynamic library. Package: libatomic-queue-dev Section: libdevel Architecture: any Depends: libatomic-queue0 (= ${binary:Version}), libboost-dev, ${shlibs:Depends}, ${misc:Depends} Description: devel files for C++ atomic_queue library C++11 multiple-producer-multiple-consumer lockless queues based on circular buffer with std::atomic. The main design principle these queues follow is simplicity: the bare minimum of atomic operations, fixed size buffer, value semantics. . The circular buffer side-steps the memory reclamation problem inherent in linked-list based queues for the price of fixed buffer size. See Effective memory reclamation for lock-free data structures in C++ for more details. . These qualities are also limitations: . * The maximum queue size must be set at compile time or construction time. * There are no OS-blocking push/pop functions. . Nevertheless, ultra-low-latency applications need just that and nothing more. The simplicity pays off, see the throughput and latency benchmarks. . Available containers are: . * AtomicQueue - a fixed size ring-buffer for atomic elements. * OptimistAtomicQueue - a faster fixed size ring-buffer for atomic elements which busy-waits when empty or full. * AtomicQueue2 - a fixed size ring-buffer for non-atomic elements. * OptimistAtomicQueue2 - a faster fixed size ring-buffer for non-atomic elements which busy-waits when empty or full. . These containers have corresponding AtomicQueueB, OptimistAtomicQueueB, AtomicQueueB2, OptimistAtomicQueueB2 versions where the buffer size is specified as an argument to the constructor. . This package contains the header files and static library.