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/09/08 18:49:11 UTC

svn commit: r995134 - in /qpid/trunk/qpid/cpp/src/qpid: client/RdmaConnector.cpp sys/rdma/RdmaIO.cpp

Author: astitcher
Date: Wed Sep  8 16:49:11 2010
New Revision: 995134

URL: http://svn.apache.org/viewvc?rev=995134&view=rev
Log:
Remove write after frees in Rdma::AsynchIO and qpid::client::RdmaConnector

Modified:
    qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp
    qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.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=995134&r1=995133&r2=995134&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/client/RdmaConnector.cpp Wed Sep  8 16:49:11 2010
@@ -277,8 +277,9 @@ void RdmaConnector::drained() {
     QPID_LOG(debug, "RdmaConnector::drained " << identifier);
     assert(!polling);
     if (aio) {
-        aio->stop(boost::bind(&RdmaConnector::stopped, this, aio));
+        Rdma::AsynchIO* a = aio;
         aio = 0;
+        a->stop(boost::bind(&RdmaConnector::stopped, this, a));
     }
 }
 

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp?rev=995134&r1=995133&r2=995134&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/rdma/RdmaIO.cpp Wed Sep  8 16:49:11 2010
@@ -327,10 +327,11 @@ namespace Rdma {
         }
 
         // If we've got all the write confirmations and we're draining
+        // We might get deleted in the drained callback so return immediately
         if (draining) {
             if (outstandingWrites == 0) {
-                 doDrainedCallback();
                  draining = false;
+                 doDrainedCallback();
             }
             return;
         }



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