Reputation: 630
Boost.Signals is no longer being actively maintained, so it has been deprecated. Do not use Boost.Signals for new development (use Boost.Signals2 instead). If you have existing Boost.Signals-based code, it will continue to work, but consider moving to Boost.Signals2.
http://www.boost.org/users/history/version_1_54_0.html
So, Signals are deprecated. I'm confused about this. As far as I know, Signals2 is multi-threaded version of Signals. But what if I don't need multi-threading usage of Signals? Will I get some overhead? Can I use boost::signals2::trackable? Will I get any disadvantages using Signals2 in single-thread application?
Upvotes: 2
Views: 1038
Reputation: 15075
As far as I know, Signals2 is multi-threaded version of Signals. But what if I don't need multi-threading usage of Signals? Will I get some overhead?
In a single-threaded environment use dummy_mutex
, as described here.
Can I use boost::signals2::trackable?
Yes, you can use it, but keep in mind that it won't be thread-safe approach. So if you eventually decide to adjust your module to a mutli-threaded environment, you'll have to re-design your slots.
Upvotes: 1
Reputation: 93579
Using multithread safe code in a single threaded app is always ok. You might gain some overhead due to being either overly careful or through useless locking, but it will always work. And I wouldn't worry about the performance hit- its very unlikely to be a bottleneck.
Upvotes: 1