You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2008/09/27 02:08:19 UTC

svn commit: r699535 - in /incubator/qpid/trunk/qpid/cpp/src/qpid/cluster: Cluster.cpp JoiningHandler.cpp MemberHandler.cpp

Author: aconway
Date: Fri Sep 26 17:08:18 2008
New Revision: 699535

URL: http://svn.apache.org/viewvc?rev=699535&view=rev
Log:
Added missing locks in cluster code.

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/JoiningHandler.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/MemberHandler.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp?rev=699535&r1=699534&r2=699535&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/Cluster.cpp Fri Sep 26 17:08:18 2008
@@ -282,6 +282,7 @@
 }
 
 void Cluster::ready() {
+    // Called with lock held
     QPID_LOG(debug, self << " ready at " << url);
     unstall();
     mcastControl(ClusterReadyBody(ProtocolVersion(), url.str()), 0);

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/JoiningHandler.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/JoiningHandler.cpp?rev=699535&r1=699534&r2=699535&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/JoiningHandler.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/JoiningHandler.cpp Fri Sep 26 17:08:18 2008
@@ -47,6 +47,7 @@
 }
 
 void JoiningHandler::deliver(Event& e) {
+    Mutex::ScopedLock l(cluster.lock);
     // Discard connection events unless we are stalled to receive a  dump.
     if (state == STALLED) 
         cluster.connectionEventQueue.push(e);
@@ -60,7 +61,7 @@
     checkDumpRequest();
 }
 
-void JoiningHandler::checkDumpRequest() {
+void JoiningHandler::checkDumpRequest() { // Call with lock held
     if (state == START && !cluster.map.dumper) {
         cluster.broker.getPort(); // ensure the broker is listening.
         state = DUMP_REQUESTED;

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/MemberHandler.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/MemberHandler.cpp?rev=699535&r1=699534&r2=699535&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/MemberHandler.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/cluster/MemberHandler.cpp Fri Sep 26 17:08:18 2008
@@ -74,6 +74,7 @@
 }
 
 void MemberHandler::ready(const MemberId& id, const std::string& urlStr) {
+    Mutex::ScopedLock l(cluster.lock);
     if (cluster.map.ready(id, Url(urlStr)))
         cluster.updateMemberStats();
 }