summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/OutputInterceptor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/cluster/OutputInterceptor.cpp')
-rw-r--r--cpp/src/qpid/cluster/OutputInterceptor.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/cpp/src/qpid/cluster/OutputInterceptor.cpp b/cpp/src/qpid/cluster/OutputInterceptor.cpp
index 8718154d3e..4424864787 100644
--- a/cpp/src/qpid/cluster/OutputInterceptor.cpp
+++ b/cpp/src/qpid/cluster/OutputInterceptor.cpp
@@ -39,13 +39,18 @@ OutputInterceptor::OutputInterceptor(cluster::Connection& p, sys::ConnectionOutp
void OutputInterceptor::send(framing::AMQFrame& f) {
Locker l(lock);
next->send(f);
- sent += f.size();
+ if (!parent.isCatchUp())
+ sent += f.size();
}
void OutputInterceptor::activateOutput() {
- Locker l(lock);
- moreOutput = true;
- sendDoOutput();
+ Locker l(lock);
+ if (parent.isCatchUp())
+ next->activateOutput();
+ else {
+ moreOutput = true;
+ sendDoOutput();
+ }
}
// Called in write thread when the IO layer has no more data to write.