diff options
Diffstat (limited to 'cpp/src/qpid/cluster/OutputInterceptor.cpp')
| -rw-r--r-- | cpp/src/qpid/cluster/OutputInterceptor.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/cpp/src/qpid/cluster/OutputInterceptor.cpp b/cpp/src/qpid/cluster/OutputInterceptor.cpp index 77ed154bd0..37b5b1a3e6 100644 --- a/cpp/src/qpid/cluster/OutputInterceptor.cpp +++ b/cpp/src/qpid/cluster/OutputInterceptor.cpp @@ -76,10 +76,12 @@ void OutputInterceptor::deliverDoOutput(size_t requested) { // Run the real doOutput() till we have added the requested data or there's nothing to output. sent = 0; + { + sys::Mutex::ScopedUnlock u(lock); do { - sys::Mutex::ScopedUnlock u(lock); moreOutput = parent.getBrokerConnection().doOutput(); } while (sent < requested && moreOutput); + } sent += buf; // Include buffered data in the sent total. QPID_LOG(trace, "Delivered doOutput: requested=" << requested << " output=" << sent << " more=" << moreOutput); |
