diff options
author | Andrew Stitcher <astitcher@apache.org> | 2010-09-08 16:48:58 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2010-09-08 16:48:58 +0000 |
commit | 9048ed46bb240aa3839f74d8b6daf837592186be (patch) | |
tree | bfd8c6e2d704a93b36ab575395bf4af6297a9b60 /cpp/src/qpid/sys/rdma/RdmaIO.cpp | |
parent | 8db918da6cb8d883c2f6c506823293c9029f1b18 (diff) | |
download | qpid-python-9048ed46bb240aa3839f74d8b6daf837592186be.tar.gz |
Refactored Rdma write buffers to be controlled by the rdma_wrapper layer
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@995131 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/rdma/RdmaIO.cpp')
-rw-r--r-- | cpp/src/qpid/sys/rdma/RdmaIO.cpp | 25 |
1 files changed, 3 insertions, 22 deletions
diff --git a/cpp/src/qpid/sys/rdma/RdmaIO.cpp b/cpp/src/qpid/sys/rdma/RdmaIO.cpp index 3fb4395660..a72ed12af7 100644 --- a/cpp/src/qpid/sys/rdma/RdmaIO.cpp +++ b/cpp/src/qpid/sys/rdma/RdmaIO.cpp @@ -63,11 +63,8 @@ namespace Rdma { // Prepost recv buffers before we go any further qp->allocateRecvBuffers(recvBufferCount, bufferSize); - for (int i = 0; i<xmitBufferCount; ++i) { - // Allocate xmit buffer - Buffer* b = qp->createBuffer(bufferSize); - bufferQueue.push_front(b); - } + // Create xmit buffers + qp->createSendBuffers(xmitBufferCount, bufferSize); } AsynchIO::~AsynchIO() { @@ -427,10 +424,7 @@ namespace Rdma { } } else { ++sendEvents; - { - qpid::sys::ScopedLock<qpid::sys::Mutex> l(bufferQueueLock); - bufferQueue.push_front(b); - } + returnBuffer(b); --outstandingWrites; } } while (true); @@ -480,19 +474,6 @@ namespace Rdma { nc(*this); } - Buffer* AsynchIO::getBuffer() { - qpid::sys::ScopedLock<qpid::sys::Mutex> l(bufferQueueLock); - assert(!bufferQueue.empty()); - Buffer* b = bufferQueue.front(); - bufferQueue.pop_front(); - return b; - } - - void AsynchIO::returnBuffer(Buffer* b) { - qpid::sys::ScopedLock<qpid::sys::Mutex> l(bufferQueueLock); - bufferQueue.push_front(b); - } - ConnectionManager::ConnectionManager( ErrorCallback errc, DisconnectedCallback dc |