[zeromq-dev] Inter thread communication for scalability

Lindley French lindleyf at gmail.com
Wed Jan 15 16:57:28 CET 2014


The single-producer, single-consumer queue (boost::lockfree::queue_spsc) is
documented to be wait-free. However, I don't think this is exactly what you
need in this context.


On Wed, Jan 15, 2014 at 10:55 AM, Kenneth Adam Miller <
kennethadammiller at gmail.com> wrote:

>
> On Jan 15, 2014 8:13 AM, "Lindley French" <lindleyf at gmail.com> wrote:
> >
> > The Boost.Lockfree documentation discusses the difference between
> lock-free and wait-free. I can't say if they're using both terms correctly,
> but they at least understand there's a difference.
> >
>
> Also, to everyone; thanks for all the different advice! I forgot to note
> that the particular environment I'm in is a pintool, and I can't use any
> locking facilities that they dont provide. That means no boost lock free
> queue, because as was mentioned, the name may not mean there are no locks.
>
> >
> > On Wed, Jan 15, 2014 at 9:04 AM, Goswin von Brederlow <goswin-v-b at web.de>
> wrote:
> >>
> >> On Tue, Jan 14, 2014 at 03:48:34PM -0500, Lindley French wrote:
> >> > A visit to the Boost libraries reveals there's a brand-new
> Boost.Lockfree
> >> > library that must have arrived with one of the last few versions. You
> >> > should seriously consider simply replacing your std::lists with
> >> > boost::lockfree::queues using your existing logic, and see if that
> gives
> >> > you the performance you're looking for before you make any massive
> changes.
> >>
> >> Is Boost using the right term there?
> >>
> >> http://en.wikipedia.org/wiki/Lock-free:
> >>
> >>   In computer science, a non-blocking algorithm ensures that threads
> >>   competing for a shared resource do not have their execution
> >>   indefinitely postponed by mutual exclusion. A non-blocking algorithm
> >>   is lock-free if there is guaranteed system-wide progress; wait-free if
> >>   there is also guaranteed per-thread progress.
> >>
> >> Lock-free does not mean that you don't have locks. It just means you
> >> can't have deadlocks. You can't get stuck. Idealy what you want is a
> >> wait-free algorithm.
> >>
> >> MfG
> >>         Goswin
> >> _______________________________________________
> >> zeromq-dev mailing list
> >> zeromq-dev at lists.zeromq.org
> >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >
> >
> >
> > _______________________________________________
> > zeromq-dev mailing list
> > zeromq-dev at lists.zeromq.org
> > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> >
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20140115/6c3bcb86/attachment.htm>


More information about the zeromq-dev mailing list