summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2010-06-11 08:42:37 +0000
committerGordon Sim <gsim@apache.org>2010-06-11 08:42:37 +0000
commitfbf27465fa37613b06b2a220df73f944fb83ccad (patch)
tree55725d96eb38456f755e59410253ad6ccb737cf1 /cpp/src/qpid/sys
parent9e52a45dd4946e90fe89f4982c339841242a1884 (diff)
downloadqpid-python-fbf27465fa37613b06b2a220df73f944fb83ccad.tar.gz
Ensure that AsynchConnector is disassociated from Poller when aborting connection attempt due to a heartbeat timeout
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@953610 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys')
-rw-r--r--cpp/src/qpid/sys/AsynchIO.h2
-rw-r--r--cpp/src/qpid/sys/posix/AsynchIO.cpp6
2 files changed, 7 insertions, 1 deletions
diff --git a/cpp/src/qpid/sys/AsynchIO.h b/cpp/src/qpid/sys/AsynchIO.h
index f1841639ed..50da8fa4fc 100644
--- a/cpp/src/qpid/sys/AsynchIO.h
+++ b/cpp/src/qpid/sys/AsynchIO.h
@@ -69,7 +69,7 @@ public:
ConnectedCallback connCb,
FailedCallback failCb);
virtual void start(boost::shared_ptr<Poller> poller) = 0;
-
+ virtual void stop() {};
protected:
AsynchConnector() {}
virtual ~AsynchConnector() {}
diff --git a/cpp/src/qpid/sys/posix/AsynchIO.cpp b/cpp/src/qpid/sys/posix/AsynchIO.cpp
index cef9f1fcef..7d85b4325b 100644
--- a/cpp/src/qpid/sys/posix/AsynchIO.cpp
+++ b/cpp/src/qpid/sys/posix/AsynchIO.cpp
@@ -157,6 +157,7 @@ public:
ConnectedCallback connCb,
FailedCallback failCb);
void start(Poller::shared_ptr poller);
+ void stop();
};
AsynchConnector::AsynchConnector(const Socket& s,
@@ -183,6 +184,11 @@ void AsynchConnector::start(Poller::shared_ptr poller)
startWatch(poller);
}
+void AsynchConnector::stop()
+{
+ stopWatch();
+}
+
void AsynchConnector::connComplete(DispatchHandle& h)
{
h.stopWatch();