Source: readerwriterqueue Section: devel Priority: optional Maintainer: Debian Med Packaging Team Uploaders: Steffen Moeller Build-Depends: debhelper-compat (= 13), cmake Standards-Version: 4.6.1 Homepage: https://github.com/cameron314/readerwriterqueue Vcs-Browser: https://salsa.debian.org/med-team/readerwriterqueue Vcs-Git: https://salsa.debian.org/med-team/readerwriterqueue.git Rules-Requires-Root: no Package: libreaderwriterqueue-dev Architecture: all Section: libdevel Depends: ${misc:Depends} Description: single-producer, single-consumer lock-free queue for C++ This package provides a lock-free queue for C++. It only supports a two-thread use case (one consuming, and one producing). The threads can't switch roles, though you could use this queue completely from a single thread if you wish (but that would sort of defeat the purpose!). . Features: * Blazing fast * Compatible with C++11 (supports moving objects instead of making copies) * Fully generic (templated container of any type) -- just like std::queue, you never need to allocate memory for elements yourself (which saves you the hassle of writing a lock-free memory manager to hold the elements you're queueing) * Allocates memory up front, in contiguous blocks * Provides a try_enqueue method which is guaranteed never to allocate memory (the queue starts with an initial capacity) * Also provides an enqueue method which can dynamically grow the size of the queue as needed * Also provides try_emplace/emplace convenience methods * Has a blocking version with wait_dequeue * Completely "wait-free" (no compare-and-swap loop). Enqueue and dequeue are always O(1) (not counting memory allocation) * On x86, the memory barriers compile down to no-ops, meaning enqueue and dequeue are just a simple series of loads and stores (and branches)