Author: astitcher
Date: Fri Oct 9 03:37:54 2009
New Revision: 823388
URL: http://svn.apache.org/viewvc?rev=823388&view=rev
Log:
Change TCP AsynchConnector so that it returns all failures asynchronously
Modified:
qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp?rev=823388&r1=823387&r2=823388&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/posix/AsynchIO.cpp Fri Oct 9 03:37:54 2009
@@ -166,6 +166,7 @@
private:
ConnectedCallback connCallback;
FailedCallback failCallback;
+ std::string errMsg;
const Socket& socket;
public:
@@ -194,10 +195,14 @@
socket.setNonblocking();
try {
socket.connect(hostname, port);
- startWatch(poller);
} catch(std::exception& e) {
- failure(-1, e.what());
+ // Defer reporting failure
+ startWatch(poller);
+ errMsg = e.what();
+ DispatchHandle::call(boost::bind(&AsynchConnector::failure, this, -1,
errMsg));
+ return;
}
+ startWatch(poller);
}
void AsynchConnector::connComplete(DispatchHandle& h)
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]