summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/client/RdmaConnector.cpp1
-rw-r--r--cpp/src/qpid/sys/rdma/RdmaIO.cpp4
-rw-r--r--cpp/src/qpid/sys/rdma/RdmaIO.h1
3 files changed, 6 insertions, 0 deletions
diff --git a/cpp/src/qpid/client/RdmaConnector.cpp b/cpp/src/qpid/client/RdmaConnector.cpp
index f8f38fb050..208d42f672 100644
--- a/cpp/src/qpid/client/RdmaConnector.cpp
+++ b/cpp/src/qpid/client/RdmaConnector.cpp
@@ -281,6 +281,7 @@ void RdmaConnector::stopped(Rdma::AsynchIO* a) {
void RdmaConnector::drained() {
QPID_LOG(debug, "RdmaConnector::drained " << identifier);
assert(!polling);
+ acon->stop();
if (aio) {
Rdma::AsynchIO* a = aio;
aio = 0;
diff --git a/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/cpp/src/qpid/sys/rdma/RdmaIO.cpp
index c89e0f2126..69776654ef 100644
--- a/cpp/src/qpid/sys/rdma/RdmaIO.cpp
+++ b/cpp/src/qpid/sys/rdma/RdmaIO.cpp
@@ -518,6 +518,10 @@ namespace Rdma {
handle.startWatch(poller);
}
+ void ConnectionManager::stop() {
+ handle.stopWatch();
+ }
+
void ConnectionManager::event(DispatchHandle&) {
connectionEvent(ci);
}
diff --git a/cpp/src/qpid/sys/rdma/RdmaIO.h b/cpp/src/qpid/sys/rdma/RdmaIO.h
index 72cbac154b..55174ea8a1 100644
--- a/cpp/src/qpid/sys/rdma/RdmaIO.h
+++ b/cpp/src/qpid/sys/rdma/RdmaIO.h
@@ -179,6 +179,7 @@ namespace Rdma {
virtual ~ConnectionManager();
void start(qpid::sys::Poller::shared_ptr poller, const qpid::sys::SocketAddress& addr);
+ void stop();
private:
void event(qpid::sys::DispatchHandle& handle);