Is my understanding anything near sane?
I'm afraid not: a signal invokes all slots currently in its list. There is no concept of "all slots" being present and there is no concept of waiting either. I'd suggest to use a proper blocking synchronization mechanism for this, e.g., a semaphore. So
1. Create a semaphore with initial value 0
2. QueryParameter(1)
3. Wait on semaphore
In the callback, do the work and release / increment the semaphore. Repeat for every parameter.
________________________________
From: Boost-users
Hi,
A friend pointed me at this library, as it may solve a problem for me.
Which problem is?
Am I correct in thinking that a signal can be activated once all of its slots are filled and not before?
It's been awhile since I last used Boost and/or Signals2... But if memory serves, it is the C++ analog to C# events and event handlers. I'm not sure what you mean "activated". In event terms, raising the event, perhaps? My understanding is that you can raise the event, but there does not necessarily need to be an event handler on the other end of the callback. Although, from my experience designing event driven systems, there usually is, I think.
Best wishes.
Tim Burgess Raised Bar Ltd. E: tim@raisedbar.net M: +44 (0)7989 486976
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users