[Bug 2129304] Review Request: moodycamel-readerwriterqueue - A single-producer, single-consumer lock-free queue for C++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=2129304

Sergey <sergey@xxxxxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Comment|0                           |updated



--- Comment #0 has been edited ---

Spec:
https://download.copr.fedorainfracloud.org/results/snmende/moodycamel-readerwriterqueue/fedora-rawhide-x86_64/04881538-moodycamel-readerwriterqueue/moodycamel-readerwriterqueue.spec
SRPM:
https://download.copr.fedorainfracloud.org/results/snmende/moodycamel-readerwriterqueue/fedora-rawhide-x86_64/04881538-moodycamel-readerwriterqueue/moodycamel-readerwriterqueue-1.0.6-1.fc38.src.rpm
Description: A single-producer, single-consumer lock-free queue for C++

An original implementation of a lock-free queue designed from scratch 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)

Fedora Account System Username: snmende
Build:
https://copr.fedorainfracloud.org/coprs/snmende/moodycamel-readerwriterqueue/build/4881538/

-- 
You are receiving this mail because:
You are always notified about changes to this product and component
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2129304
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux