--
You received this message because you are subscribed to the Google Groups "unofficial-real-time-cxx" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unofficial-real-ti...@googlegroups.com.
To post to this group, send email to unofficial-r...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unofficial-real-time-cxx/91e49274-664c-408d-960e-168055c43961%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
NicolasI have a comment on rolling_queue: What do you think of making the inner Container (currently std::array) a template parameter, in the style of std::priority_queue?Hi Guy,Kudos to you and Jonathan for getting the ball rolling!
On Wed, Jun 10, 2015 at 1:53 PM, Guy Davidson <elgu...@gmail.com> wrote:
As promised...I have created a GitHub account, WG21-SG14, and a single repository SG14, containing one class, sg14::rolling_queue. This is a FIFO queue in a fixed-size, non-growing buffer. Myself and Jonathan Wakely (of RedHat) have reviewed this and I'll work it up into a proposal if there is sufficient support.Suggest amendements, request contributions, add other classes, everyone go wild. I haven't added a coding standards document: we have bigger arguments to have, I suspect.Best wishes,Guy
--
You received this message because you are subscribed to the Google Groups "unofficial-real-time-cxx" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unofficial-real-time-cxx+unsub...@googlegroups.com.
new elements have to be created in-place first time round and then assigned the second time round
Hey Guy,
I like ring or circular buffer as a name myself. I think I would try and use it like a queue or like an array that could have more or less items. I'll have to understand deque better to see how difference the performance would be. I can think of a lot of hardware optimization situations where a simpler structure then deque would win like this idea . GPU communication blocking your data to fit in cache etc... I just found out that deque does not have a reserve who knew. It seems like it would be nice to set the page size in deque. How does deque know what type of allocator I will put under it. Also we should look at and understand http://www.boost.org/doc/libs/1_53_0/libs/circular_buffer/doc/circular_buffer.html
When I think of the fast as possible version of buffering system between 2 threads here is what I think of.
Basically you use a slab allocator to get you new pages. You keep an array of pages between the reader and the writer. The writer just grabs an empty page from a slab allocator and starts to write objects to it. The reader pulls pages out once there is at least a full page. Maybe you could add some flushing system to reduce latency so you could handle partial pages. Humm what would that look like in C++11. A bunch of deque I guess.
http://en.wikipedia.org/wiki/Slab_allocation
Some small points to a generally good idea.
· I would put the small functions that are often use to the top. IE increase_back etc... The inliner is likely to do a better job then.
· If we made a vector version we should work to remove container_type c; I think you only need 2 out of 3 pointers.
· I think you can get rid of the count with some thought.
· stl naming of push and pop. Maybe use push_back, pop_front, front in your example. (I might be wrong here queue has pop and push. Vector does not... )
Anyways I am off to bed.
Scott
--
You received this message because you are subscribed to the Google Groups "unofficial-real-time-cxx" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unofficial-real-ti...@googlegroups.com.
To post to this group, send email to unofficial-r...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unofficial-real-time-cxx/79b728bf-92b0-4c5b-8a6b-2bfae6cc142c%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to unofficial-real-time-cxx+unsub...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "unofficial-real-time-cxx" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unofficial-real-ti...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unofficial-real-time-cxx/0d02dd75-42cd-41ed-8488-b507354b5591%40googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "unofficial-real-time-cxx" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/unofficial-real-time-cxx/sg7wKrxL-AY/unsubscribe.
To unsubscribe from this group and all its topics, send an email to unofficial-real-ti...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unofficial-real-time-cxx/92f1ea31-511e-4719-b5c7-f62380633fcc%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "unofficial-real-time-cxx" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unofficial-real-ti...@googlegroups.com.
To post to this group, send email to unofficial-r...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unofficial-real-time-cxx/ed1ece96-e65c-4dc7-8477-a361abf443a6%40googlegroups.com.