You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2010/01/21 07:18:06 UTC

svn commit: r901551 - /qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp

Author: astitcher
Date: Thu Jan 21 06:17:58 2010
New Revision: 901551

URL: http://svn.apache.org/viewvc?rev=901551&view=rev
Log:
Fix a potential RDMA connect failure race

Modified:
    qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp?rev=901551&r1=901550&r2=901551&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp Thu Jan 21 06:17:58 2010
@@ -172,9 +172,9 @@
         boost::bind(&RdmaConnector::connectionError, this, poller, _1, _2),
         boost::bind(&RdmaConnector::disconnected, this, poller, _1),
         boost::bind(&RdmaConnector::rejected, this, poller, _1, _2));
-    c->start(poller);
-
     polling = true;
+
+    c->start(poller);
 }
 
 // The following only gets run when connected
@@ -187,11 +187,12 @@
         boost::bind(&RdmaConnector::writebuff, this, _1),
         0, // write buffers full
         boost::bind(&RdmaConnector::eof, this, _1)); // data error - just close connection
-    aio->start(poller);
 
     identifier = str(format("[%1% %2%]") % ci->getLocalName() % ci->getPeerName());
     ProtocolInitiation init(version);
     writeDataBlock(init);
+
+    aio->start(poller);
 }
 
 void RdmaConnector::connectionError(sys::Poller::shared_ptr, Rdma::Connection::intrusive_ptr&, Rdma::ErrorType) {



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org