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:commits-subscr...@qpid.apache.org

Reply via email to