From 729e9ce65125154cfdd2877abc8f7a901ad7caa2 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Tue, 3 Feb 2009 21:28:14 +0000 Subject: Fix for race conditions in cluster join. - ConnectionDecoder: separated from Connection. - cluster/PollableQueue: stop processing frames if PollableQueue is stopped. - move state checks in event-queue handler to frame-queue handler. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@740459 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/cluster/UpdateClient.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'cpp/src/qpid/cluster/UpdateClient.cpp') diff --git a/cpp/src/qpid/cluster/UpdateClient.cpp b/cpp/src/qpid/cluster/UpdateClient.cpp index 08f09573a4..91d4c6d3ce 100644 --- a/cpp/src/qpid/cluster/UpdateClient.cpp +++ b/cpp/src/qpid/cluster/UpdateClient.cpp @@ -117,7 +117,10 @@ void UpdateClient::update() { session.close(); std::for_each(connections.begin(), connections.end(), boost::bind(&UpdateClient::updateConnection, this, _1)); - AMQFrame frame(map.asMethodBody()); + + ClusterConnectionMembershipBody membership; + map.toMethodBody(membership); + AMQFrame frame(membership); client::ConnectionAccess::getImpl(connection)->handle(frame); connection.close(); QPID_LOG(debug, updaterId << " updated state to " << updateeId << " at " << updateeUrl); -- cgit v1.2.1