ZmqMultipleNamedClientBusProxy should no longer call the connection handler when the service is unavailable.
ZmqMultipleNamedClientBusProxy should no longer call the connection handler when the service is unavailable.

Turns out that this is pretty complicated to get right because we
can't call the handler while the lock is held which mean that the
naive forwarding implementation won't work. Instead we need a custom
functor to act as the callback which handles a lock-free state machine
whose behaviour changes depending on whether we're in the locked
section or not.

Note that we should eventually try to simply remove the lock by
funnelling all events (zmq and connect calls) through message loop.

Motrixi/rtbkit-vainilla,niko-lay/rtbkit,OrbitScripts/rtbkit,niko-lay/rtbkit,dinomyte72/rtbkit,datacratic/soa,emmanuelleparquier/rtbkitinstall,pswaminathan/rtbkit,meiry/rtbkit,monoj-khatua/rtbkit,Motrixi/rtbkit-public,datacratic/rtbkit,datacratic/DasDB,winclap/rtbkit,datacratic/rtbkit,Motrixi/rtbkit-public,meiry/rtbkit,dinomyte72/rtbkit,Motrixi/rtbkit-vainilla,niko-lay/rtbkit,datacratic/soa,datacratic/DasDB,meiry/rtbkit,ksurendra/rtbkit,nagyistoce/StockExchange-RealTimeBidder-kit,datacratic/DasDB,pablin87/rtbkit,meiry/rtbkit,OrbitScripts/rtbkit,datacratic/soa,monoj-khatua/rtbkit,rtbkit/rtbkit,ksurendra/rtbkit,pablin87/rtbkit,wesley1001/rtbkit,monoj-khatua/rtbkit,emmanuelleparquier/rtbkitinstall,Motrixi/rtbkit-public,winclap/rtbkit,dinomyte72/rtbkit,emmanuelleparquier/rtbkitinstall,OrbitScripts/rtbkit,emmanuelleparquier/rtbkitinstall,emmanuelleparquier/rtbkitinstall,dinomyte72/rtbkit,Motrixi/soa,nagyistoce/StockExchange-RealTimeBidder-kit,datacratic/rtbkit,pswaminathan/rtbkit,wesley1001/rtbkit,datacratic/DasDB,rtbkit/rtbkit,OrbitScripts/rtbkit,meiry/rtbkit,monoj-khatua/rtbkit,niko-lay/rtbkit,Motrixi/rtbkit-public,wesley1001/rtbkit,Motrixi/rtbkit-public,Motrixi/soa,ksurendra/rtbkit,wesley1001/rtbkit,winclap/rtbkit,datacratic/soa,winclap/rtbkit,datacratic/soa,Motrixi/soa,monoj-khatua/rtbkit,pswaminathan/rtbkit,pswaminathan/rtbkit,wesley1001/rtbkit,rtbkit/rtbkit,ksurendra/rtbkit,Motrixi/rtbkit-public,pablin87/rtbkit,datacratic/rtbkit,rtbkit/rtbkit,Motrixi/soa,niko-lay/rtbkit,winclap/rtbkit,pablin87/rtbkit,Motrixi/rtbkit-vainilla,nagyistoce/StockExchange-RealTimeBidder-kit,pablin87/rtbkit,rtbkit/rtbkit,datacratic/rtbkit,monoj-khatua/rtbkit,dinomyte72/rtbkit,meiry/rtbkit,ksurendra/rtbkit,pswaminathan/rtbkit,datacratic/rtbkit,dinomyte72/rtbkit,niko-lay/rtbkit,nagyistoce/StockExchange-RealTimeBidder-kit,pswaminathan/rtbkit,Motrixi/rtbkit-vainilla,pablin87/rtbkit,datacratic/DasDB,winclap/rtbkit,rtbkit/rtbkit,nagyistoce/StockExchange-RealTimeBidder-kit,OrbitScripts/rtbkit,ksurendra/rtbkit,OrbitScripts/rtbkit,nagyistoce/StockExchange-RealTimeBidder-kit,wesley1001/rtbkit,emmanuelleparquier/rtbkitinstall,Motrixi/rtbkit-vainilla