summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-06-03 10:31:24 +0000
committerGordon Sim <gsim@apache.org>2009-06-03 10:31:24 +0000
commit4d1153648a9dbf8b7c9258ef664fe48457f313d4 (patch)
treee3dd9b2a531bd5452851f772500e35c177287048 /cpp/src
parentff726123af52268bbbbfdea491ec77ab6309324a (diff)
downloadqpid-python-4d1153648a9dbf8b7c9258ef664fe48457f313d4.tar.gz
Stop watching the acceptors dispatch handle before it is deleted in ssl and rdma plugins.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@781332 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/sys/rdma/RdmaIO.cpp5
-rw-r--r--cpp/src/qpid/sys/rdma/RdmaIO.h2
-rw-r--r--cpp/src/qpid/sys/ssl/SslIo.cpp5
-rw-r--r--cpp/src/qpid/sys/ssl/SslIo.h1
4 files changed, 12 insertions, 1 deletions
diff --git a/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/cpp/src/qpid/sys/rdma/RdmaIO.cpp
index 0ca4c5e259..316b6b99e3 100644
--- a/cpp/src/qpid/sys/rdma/RdmaIO.cpp
+++ b/cpp/src/qpid/sys/rdma/RdmaIO.cpp
@@ -446,6 +446,11 @@ namespace Rdma {
ci->nonblocking();
}
+ ConnectionManager::~ConnectionManager()
+ {
+ handle.stopWatch();
+ }
+
void ConnectionManager::start(Poller::shared_ptr poller) {
startConnection(ci);
handle.startWatch(poller);
diff --git a/cpp/src/qpid/sys/rdma/RdmaIO.h b/cpp/src/qpid/sys/rdma/RdmaIO.h
index 410ea42884..9f916ba7e2 100644
--- a/cpp/src/qpid/sys/rdma/RdmaIO.h
+++ b/cpp/src/qpid/sys/rdma/RdmaIO.h
@@ -157,7 +157,7 @@ namespace Rdma {
DisconnectedCallback dc
);
- virtual ~ConnectionManager() {}
+ virtual ~ConnectionManager();
void start(qpid::sys::Poller::shared_ptr poller);
diff --git a/cpp/src/qpid/sys/ssl/SslIo.cpp b/cpp/src/qpid/sys/ssl/SslIo.cpp
index 624683ae7d..caf190a5ac 100644
--- a/cpp/src/qpid/sys/ssl/SslIo.cpp
+++ b/cpp/src/qpid/sys/ssl/SslIo.cpp
@@ -76,6 +76,11 @@ SslAcceptor::SslAcceptor(const SslSocket& s, Callback callback) :
ignoreSigpipe();
}
+SslAcceptor::~SslAcceptor()
+{
+ handle.stopWatch();
+}
+
void SslAcceptor::start(Poller::shared_ptr poller) {
handle.startWatch(poller);
}
diff --git a/cpp/src/qpid/sys/ssl/SslIo.h b/cpp/src/qpid/sys/ssl/SslIo.h
index ba6483282b..2d0d5b296c 100644
--- a/cpp/src/qpid/sys/ssl/SslIo.h
+++ b/cpp/src/qpid/sys/ssl/SslIo.h
@@ -47,6 +47,7 @@ private:
public:
SslAcceptor(const SslSocket& s, Callback callback);
+ ~SslAcceptor();
void start(qpid::sys::Poller::shared_ptr poller);
private: