summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/rdma/RdmaIO.cpp
diff options
context:
space:
mode:
authorAndrew Stitcher <astitcher@apache.org>2010-09-08 16:48:58 +0000
committerAndrew Stitcher <astitcher@apache.org>2010-09-08 16:48:58 +0000
commit9048ed46bb240aa3839f74d8b6daf837592186be (patch)
treebfd8c6e2d704a93b36ab575395bf4af6297a9b60 /cpp/src/qpid/sys/rdma/RdmaIO.cpp
parent8db918da6cb8d883c2f6c506823293c9029f1b18 (diff)
downloadqpid-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.cpp25
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