diff options
| author | Andrew Stitcher <astitcher@apache.org> | 2009-03-10 19:08:18 +0000 |
|---|---|---|
| committer | Andrew Stitcher <astitcher@apache.org> | 2009-03-10 19:08:18 +0000 |
| commit | b6b4f33cac1c09eb06975d896b13af59fe653476 (patch) | |
| tree | ed793532eb0f89dd8983cd642b09188d2f04a721 /qpid/cpp | |
| parent | 30d908952f2786c547e35ea0f8273057bdc3a182 (diff) | |
| download | qpid-python-b6b4f33cac1c09eb06975d896b13af59fe653476.tar.gz | |
Really close the potential race on the client between sending
and closing a connection
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@752220 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
| -rw-r--r-- | qpid/cpp/src/qpid/client/Connector.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/qpid/cpp/src/qpid/client/Connector.cpp b/qpid/cpp/src/qpid/client/Connector.cpp index bf1627bbff..c251233082 100644 --- a/qpid/cpp/src/qpid/client/Connector.cpp +++ b/qpid/cpp/src/qpid/client/Connector.cpp @@ -92,8 +92,6 @@ class TCPConnector : public Connector, public sys::Codec, private sys::Runnable framing::ProtocolVersion version; bool initiated; - - sys::Mutex closedLock; bool closed; bool joined; @@ -185,7 +183,7 @@ TCPConnector::~TCPConnector() { } void TCPConnector::connect(const std::string& host, int port){ - Mutex::ScopedLock l(closedLock); + Mutex::ScopedLock l(lock); assert(closed); try { socket.connect(host, port); @@ -207,7 +205,7 @@ void TCPConnector::connect(const std::string& host, int port){ } void TCPConnector::init(){ - Mutex::ScopedLock l(closedLock); + Mutex::ScopedLock l(lock); assert(joined); ProtocolInitiation init(version); writeDataBlock(init); @@ -218,7 +216,7 @@ void TCPConnector::init(){ bool TCPConnector::closeInternal() { bool ret; { - Mutex::ScopedLock l(closedLock); + Mutex::ScopedLock l(lock); ret = !closed; if (!closed) { closed = true; |
