Subject: Re: [boost] [Signals2] Using dummy_mutex in a multithreaded program
From: Peter Petrov (ppetrov_at_[hidden])
Date: 2010-01-18 15:25:04


On Mon, Jan 18, 2010 at 8:53 PM, Helge Bahmann <hcb_at_[hidden]> wrote:

> not a direct answer to your question, but if signals2 is posing performance
> problems to you, you might want to check out my alternate signal/slot
> implementation:
>
> http://www.chaoticmind.net/~hcb/projects/libtscb/
>
> It provides the same interface as "signals2", but...
>
> - it is always thread-safe (no dummy-mutex mode because there is simply no
> need to ever do that)
> - it is three(!) times as fast as thread-unsafe "signals"
> - it is five(!) times as fast as "signals2" with a real mutex
>
> It makes extensive use of atomic operations to achieve that -- for your
> use-case, it adds an overhead of exactly one pair of atomic inc/dec
> operations for every notification through the signal over an "open-coded"
> linked list of boost::function objects.
>
>
Thanks, Helge.

In this specific case I've already solved my issue by writing a minimal
signal class which mimics the signals2 interface and implements only what I
really need. I'll definitely have your library in mind when the need for
something more complex arises.

Regards,
Peter