You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is not an actual issue, more of a feature request.
I'm wondering if it would be possible to support an additional process call on the eventqueue similar to boost SPSC: size_type pop(T * ret, size_type size)
Can you give a use case? I'm not sure how that's useful.
Currently you can either call processOne up to max_size times, or use processIf and in the condition func, max_size is checked. However, note that processIf will still loop through all items in the queue even if the condition func returns false.
Sure -- use case is handling large amounts of market data. I've found it more performant to vectorize (batch) the consumption of data on the 'other side' of your queue data structure. This allows you to efficiently understand book state in multiple update scenarios, and, if you're re-publishing that data, you can optimize the writing. (ie. zeromq::sndmore)
However, taking a closer look at process() I'm frankly not sure this would gain much as you would still need the for(auto & item : tempList) and somehow build the event array from each unique event type, and then dispatch that.
This is not an actual issue, more of a feature request.
I'm wondering if it would be possible to support an additional
process
call on the eventqueue similar to boost SPSC: size_type pop(T * ret, size_type size)The idea would be that for queue:
your listener could handle:
Producers would still be able to enqueue one at a time.
Dispatch would look something like:
queue.process_all(max_size)
where max_size is the largest number of elements possible supplied to the listener callback.The text was updated successfully, but these errors were encountered: