summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/ClusterMap.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2009-02-03 21:28:14 +0000
committerAlan Conway <aconway@apache.org>2009-02-03 21:28:14 +0000
commit729e9ce65125154cfdd2877abc8f7a901ad7caa2 (patch)
tree433e563454062f0ab10705cb1913b0de53558168 /cpp/src/qpid/cluster/ClusterMap.cpp
parent779753f10d0ff1295d1282e367a3973f283ab34f (diff)
downloadqpid-python-729e9ce65125154cfdd2877abc8f7a901ad7caa2.tar.gz
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
Diffstat (limited to 'cpp/src/qpid/cluster/ClusterMap.cpp')
-rw-r--r--cpp/src/qpid/cluster/ClusterMap.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/cpp/src/qpid/cluster/ClusterMap.cpp b/cpp/src/qpid/cluster/ClusterMap.cpp
index bcfade2b8c..9e7232180d 100644
--- a/cpp/src/qpid/cluster/ClusterMap.cpp
+++ b/cpp/src/qpid/cluster/ClusterMap.cpp
@@ -69,8 +69,7 @@ ClusterMap::ClusterMap(const FieldTable& joinersFt, const FieldTable& membersFt)
std::for_each(membersFt.begin(), membersFt.end(), boost::bind(&addFieldTableValue, _1, boost::ref(members), boost::ref(alive)));
}
-ClusterConnectionMembershipBody ClusterMap::asMethodBody() const {
- framing::ClusterConnectionMembershipBody b;
+void ClusterMap::toMethodBody(framing::ClusterConnectionMembershipBody& b) const {
b.getJoiners().clear();
std::for_each(joiners.begin(), joiners.end(), boost::bind(&insertFieldTableFromMapValue, boost::ref(b.getJoiners()), _1));
for(Set::const_iterator i = alive.begin(); i != alive.end(); ++i) {
@@ -79,7 +78,6 @@ ClusterConnectionMembershipBody ClusterMap::asMethodBody() const {
}
b.getMembers().clear();
std::for_each(members.begin(), members.end(), boost::bind(&insertFieldTableFromMapValue, boost::ref(b.getMembers()), _1));
- return b;
}
bool ClusterMap::configChange(