On Tue, 04 Aug 2015 14:57:16 +0200 Olivier MATZ <olivier.matz at 6wind.com> wrote:
> Hi, > > > On 08/04/2015 04:20 AM, Yan, Liming (Nokia - CN/Hangzhou) wrote: > > Hi, > > As we see, DPDK ring has mainly the enqueue/dequeue APIs for > > SINGLE/MULTI producer/consumer. I have a requirement in work to take a > > peek on the top object in the ring. I don't want to consume it, just check > > the reference of the object. How could this be supported? Or any > > alternative solution for my requirement? Thanks. > > I wrote my own simple peek interface but it's not MC-safe. I think it's > > better if DPDK can support it officially. > > I think it's a good idea. I think we could avoid a test by using > the same naming convention than other functions applying to single > consumer rings. > > I'm not sure the function is safe on mc rings: the pointer returned > via peek() should not be accessed while another core dequeues the > object and modify/free it. It is not possible for peek to be SMP safe. Another consumer could remove item from ring and free at any time.