cameron314 / cameron314/readerwriterqueue
Folly's LockFreeRingBuffer
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 4.6k
- Forks
- 736
- Avg merge
- 10d 5h
- Merged PRs (30d)
- 1
Description
Hello,
I notice your benchmark has a copied version of the folly SPSC Queue to include with the benchmark code. I'm interested in your library's circular buffer, and I found folly has a LockFreeRingBuffer in the experimental code: https://github.com/facebook/folly/blob/main/folly/experimental/LockFreeRingBuffer.h
I tried to include it in your existing benchmark, but ended up needing to copy a bunch of header files from Folly (that include even more Header files) e.g.:
benchmarks/ext/folly/LockFreeRingBuffer.h
benchmarks/ext/folly/Portability.h
benchmarks/ext/folly/Traits.h
benchmarks/ext/folly/detail/
benchmarks/ext/folly/portability/
benchmarks/ext/folly/synchronization/
I feel like if I spend more time doing this it may be pointless so I paused for now.
What are your thoughts on the LockFreeRingBuffer? Is it suitable to include in these benchmarks? When the ProducerConsumerQueue was added, was it adapted to remove its dependencies on the rest of folly?
Thanks!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing benchmark's copied ProducerConsumerQueue and the proposed benchmarks/ext/folly/LockFreeRingBuffer.h. Trace the listed Folly headers and dependencies to determine whether the LockFreeRingBuffer can be included without copying a large subsystem. Done means reaching a documented decision on suitability and a defined integration scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100