diff options
| author | Alan Conway <aconway@apache.org> | 2009-02-03 21:28:14 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2009-02-03 21:28:14 +0000 |
| commit | 729e9ce65125154cfdd2877abc8f7a901ad7caa2 (patch) | |
| tree | 433e563454062f0ab10705cb1913b0de53558168 /cpp/src/qpid/cluster/ClusterMap.cpp | |
| parent | 779753f10d0ff1295d1282e367a3973f283ab34f (diff) | |
| download | qpid-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.cpp | 4 |
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( |
