[Debian-med-packaging] Bug#964057: ITP: readerwriterqueue -- single-producer, single-consumer lock-free queue for C++
Steffen Moeller
moeller at debian.org
Tue Jun 30 22:43:26 BST 2020
Package: wnpp
Severity: wishlist
Subject: ITP: readerwriterqueue -- single-producer, single-consumer lock-free queue for C++
Package: wnpp
Owner: Steffen Moeller <moeller at 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
More information about the Debian-med-packaging
mailing list