Robin Rowe
2018-11-14 20:27:52 UTC
Long ago, I made a failed attempt to create a lockfree queue based on a
ring buffer. Everyone here was very helpful pointing out where that had
race conditions or needed design improvements. Thanks.
Am giving it another go:
https://github.com/robinrowe/multiprocessing/blob/master/RingQueue.h
Simple single-threaded test case in test_queue.cpp. RingQueue.h has the
implementation. Other files in repo are a work in progress, may ignore.
Although it will build, at this point am only asking for a desk check.
What flaws does class RingQueue have as a lockfree single producer
(push) and single consumer (pop) queue? What are the race conditions?
If more appropriate, respond off-list. And, if there's another list you
recommend I ask this, let me know off-list.
Thank you!
Robin
ring buffer. Everyone here was very helpful pointing out where that had
race conditions or needed design improvements. Thanks.
Am giving it another go:
https://github.com/robinrowe/multiprocessing/blob/master/RingQueue.h
Simple single-threaded test case in test_queue.cpp. RingQueue.h has the
implementation. Other files in repo are a work in progress, may ignore.
Although it will build, at this point am only asking for a desk check.
What flaws does class RingQueue have as a lockfree single producer
(push) and single consumer (pop) queue? What are the race conditions?
If more appropriate, respond off-list. And, if there's another list you
recommend I ask this, let me know off-list.
Thank you!
Robin
--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+***@isocpp.org.
To post to this group, send email to std-***@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/cfce55db-d1e9-3bfe-564d-80c0a408059d%40gmail.com.
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+***@isocpp.org.
To post to this group, send email to std-***@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/cfce55db-d1e9-3bfe-564d-80c0a408059d%40gmail.com.