summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/rdma/RdmaServer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/sys/rdma/RdmaServer.cpp')
-rw-r--r--cpp/src/qpid/sys/rdma/RdmaServer.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/cpp/src/qpid/sys/rdma/RdmaServer.cpp b/cpp/src/qpid/sys/rdma/RdmaServer.cpp
index 4fcd551bba..d42784fbaa 100644
--- a/cpp/src/qpid/sys/rdma/RdmaServer.cpp
+++ b/cpp/src/qpid/sys/rdma/RdmaServer.cpp
@@ -86,10 +86,14 @@ void full(ConRec* cr, Rdma::AsynchIO&, Rdma::Buffer* buf) {
cr->queuedWrites.push(buf);
}
+void drained(Rdma::AsynchIO&) {
+ cout << "Drained:\n";
+}
+
void disconnected(Rdma::Connection::intrusive_ptr& ci) {
ConRec* cr = ci->getContext<ConRec>();
cr->connection->disconnect();
- cr->data->queueWriteClose();
+ cr->data->drainWriteQueue(drained);
delete cr;
cout << "Disconnected: " << cr << "\n";
}
@@ -98,7 +102,7 @@ void connectionError(Rdma::Connection::intrusive_ptr& ci, Rdma::ErrorType) {
ConRec* cr = ci->getContext<ConRec>();
cr->connection->disconnect();
if (cr) {
- cr->data->queueWriteClose();
+ cr->data->drainWriteQueue(drained);
delete cr;
}
cout << "Connection error: " << cr << "\n";