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