Package: wnpp Severity: wishlist Subject: ITP: readerwriterqueue -- single-producer, single-consumer lock-free queue for C++ Package: wnpp Owner: Steffen Moeller <moel...@debian.org> Severity: wishlist
* Package name : readerwriterqueue Version : 1.0.2 Upstream Author : Cameron Desrochers * URL : https://github.com/cameron314/readerwriterqueue * License : BSD Programming Lang: C 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) Remark: This package is maintained by Debian Med Packaging Team at https://salsa.debian.org/med-team/readerwriterqueue