From 64bd79537e385a045b3c74de95ddd19f91163a26 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 8 Jan 2009 17:33:08 +0000 Subject: cluster: handle multicast errors. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@732768 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/cluster/Multicaster.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'cpp/src/qpid/cluster/Multicaster.cpp') diff --git a/cpp/src/qpid/cluster/Multicaster.cpp b/cpp/src/qpid/cluster/Multicaster.cpp index 37d2f81b39..a106ec128b 100644 --- a/cpp/src/qpid/cluster/Multicaster.cpp +++ b/cpp/src/qpid/cluster/Multicaster.cpp @@ -28,8 +28,9 @@ namespace qpid { namespace cluster { -Multicaster::Multicaster(Cpg& cpg_, const boost::shared_ptr& poller) : - cpg(cpg_), queue(boost::bind(&Multicaster::sendMcast, this, _1), poller), +Multicaster::Multicaster(Cpg& cpg_, const boost::shared_ptr& poller, boost::function onError_) : + onError(onError_), cpg(cpg_), + queue(boost::bind(&Multicaster::sendMcast, this, _1), poller), holding(true) { queue.start(); @@ -70,7 +71,9 @@ void Multicaster::sendMcast(PollableEventQueue::Queue& values) { values.erase(values.begin(), i); } catch (const std::exception& e) { - throw ClusterLeaveException(e.what()); + QPID_LOG(critical, "Multicast error: " << e.what()); + queue.stop(); + onError(); } } -- cgit v1.2.1