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 2007/06/27 04:28:31 UTC

svn commit: r551014 - in /incubator/qpid/trunk/qpid/cpp/src: qpid/client/Connector.cpp qpid/client/Connector.h tests/python_tests

Author: aconway
Date: Tue Jun 26 19:28:30 2007
New Revision: 551014

URL: http://svn.apache.org/viewvc?view=rev&rev=551014
Log:
Fixed client leak and python tests port

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.h
    incubator/qpid/trunk/qpid/cpp/src/tests/python_tests

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.cpp?view=diff&rev=551014&r1=551013&r2=551014
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.cpp Tue Jun 26 19:28:30 2007
@@ -47,7 +47,9 @@
 { }
 
 Connector::~Connector(){
-    close();
+    closeInternal();
+    if (receiver.id())
+        receiver.join();
 }
 
 void Connector::connect(const std::string& host, int port){
@@ -62,11 +64,19 @@
     writeBlock(&init);
 }
 
-void Connector::close(){
-    if (markClosed()) {
+// Call with closedLock held
+bool Connector::closeInternal() {
+    Mutex::ScopedLock l(closedLock);
+    if (!closed) {
         socket.close();
-        receiver.join();
+        closed = true;
+        return true;
     }
+    return false;
+}
+        
+void Connector::close() {
+    closeInternal();
 }
 
 void Connector::setInputHandler(InputHandler* handler){
@@ -108,20 +118,9 @@
     }
 }
 
-void Connector::handleClosed(){
-    if (markClosed()) {
-        socket.close();
-        if(shutdownHandler) shutdownHandler->shutdown();
-    }
-}
-
-bool Connector::markClosed(){
-    if (closed) {
-        return false;
-    } else {
-        closed = true;
-        return true;
-    }
+void Connector::handleClosed() {
+    if (closeInternal() && shutdownHandler)
+        shutdownHandler->shutdown();
 }
 
 void Connector::checkIdle(ssize_t status){

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.h?view=diff&rev=551014&r1=551013&r2=551014
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/client/Connector.h Tue Jun 26 19:28:30 2007
@@ -77,7 +77,7 @@
 
     void run();
     void handleClosed();
-    bool markClosed();
+    bool closeInternal();
 
   friend class Channel;
   public:

Modified: incubator/qpid/trunk/qpid/cpp/src/tests/python_tests
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/python_tests?view=diff&rev=551014&r1=551013&r2=551014
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/python_tests (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/python_tests Tue Jun 26 19:28:30 2007
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Run the python tests.
 if test -d ../../../python ;  then
-    cd ../../../python && ./run-tests -v -s "0-9" -e ../specs/amqp-dtx-preview.0-9.xml -I cpp_failing_0-9.txt $PYTHON_TESTS
+    cd ../../../python && ./run-tests -v -s "0-9" -e ../specs/amqp-dtx-preview.0-9.xml -I cpp_failing_0-9.txt -b localhost:$QPID_PORT $PYTHON_TESTS
 else
     echo Warning: python tests not found.
 fi