diff options
author | Gordon Sim <gsim@apache.org> | 2008-09-23 18:35:52 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2008-09-23 18:35:52 +0000 |
commit | 204ab92cbc433e499f4e7b6d4e5423924544c6c0 (patch) | |
tree | f9cb9dd195a20d058f125d53321369e0c8f50d28 /cpp/src | |
parent | 67d2fcac7da32bb273234908dc1567d728067ad2 (diff) | |
download | qpid-python-204ab92cbc433e499f4e7b6d4e5423924544c6c0.tar.gz |
Batch writing of outgoing messages (up to one buffers worth)
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@698272 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/amqp_0_10/Connection.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/cpp/src/qpid/amqp_0_10/Connection.cpp b/cpp/src/qpid/amqp_0_10/Connection.cpp index 6e0566c3c1..9b8b7d93c7 100644 --- a/cpp/src/qpid/amqp_0_10/Connection.cpp +++ b/cpp/src/qpid/amqp_0_10/Connection.cpp @@ -79,10 +79,11 @@ size_t Connection::encode(const char* buffer, size_t size) { } size_t frameSize=0; while (!frameQueue.empty() && ((frameSize=frameQueue.front().size()) <= out.available())) { - frameQueue.front().encode(out); - QPID_LOG(trace, "SENT [" << identifier << "]: " << frameQueue.front()); - frameQueue.pop_front(); - buffered -= frameSize; + frameQueue.front().encode(out); + QPID_LOG(trace, "SENT [" << identifier << "]: " << frameQueue.front()); + frameQueue.pop_front(); + buffered -= frameSize; + if (frameQueue.empty() && out.available() > 0) connection->doOutput(); } assert(frameQueue.empty() || frameQueue.front().size() <= size); if (!frameQueue.empty() && frameQueue.front().size() > size) |