
On Mon, Jan 18, 2010 at 8:53 PM, Helge Bahmann <hcb@chaoticmind.net> 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