summaryrefslogtreecommitdiff
path: root/qpid/cpp
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
commitc922a130012c689d452da67370ac345febbdc0db (patch)
tree7c2eedcd257b7e3efb7c5eab2046175e2e8749da /qpid/cpp
parentc6264412152b0a476501b7234e3fd3ed0ddbbaa7 (diff)
downloadqpid-python-c922a130012c689d452da67370ac345febbdc0db.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@781332 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp5
-rw-r--r--qpid/cpp/src/qpid/sys/rdma/RdmaIO.h2
-rw-r--r--qpid/cpp/src/qpid/sys/ssl/SslIo.cpp5
-rw-r--r--qpid/cpp/src/qpid/sys/ssl/SslIo.h1
4 files changed, 12 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp
index 0ca4c5e259..316b6b99e3 100644
--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp
+++ b/qpid/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/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h b/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h
index 410ea42884..9f916ba7e2 100644
--- a/qpid/cpp/src/qpid/sys/rdma/RdmaIO.h
+++ b/qpid/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/qpid/cpp/src/qpid/sys/ssl/SslIo.cpp b/qpid/cpp/src/qpid/sys/ssl/SslIo.cpp
index 624683ae7d..caf190a5ac 100644
--- a/qpid/cpp/src/qpid/sys/ssl/SslIo.cpp
+++ b/qpid/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/qpid/cpp/src/qpid/sys/ssl/SslIo.h b/qpid/cpp/src/qpid/sys/ssl/SslIo.h
index ba6483282b..2d0d5b296c 100644
--- a/qpid/cpp/src/qpid/sys/ssl/SslIo.h
+++ b/qpid/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: