diff options
author | Alan Conway <aconway@apache.org> | 2010-12-15 18:10:12 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2010-12-15 18:10:12 +0000 |
commit | 077facba2cddd2c49d14e496dfa942c23a5e66c9 (patch) | |
tree | e9c078351733678236a01056a88ec5bf5e50372c /cpp/src/tests/qpid-receive.cpp | |
parent | c50499e4c309e43367c2ff4ab478d85f88c3124c (diff) | |
download | qpid-python-077facba2cddd2c49d14e496dfa942c23a5e66c9.tar.gz |
Fix flow control for qpid-cpp-benchmark with multiple senders.
Ensure senders & receivers agree on number of messages sent/received.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1049656 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/qpid-receive.cpp')
-rw-r--r-- | cpp/src/tests/qpid-receive.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/cpp/src/tests/qpid-receive.cpp b/cpp/src/tests/qpid-receive.cpp index 9b84306605..28e229ca27 100644 --- a/cpp/src/tests/qpid-receive.cpp +++ b/cpp/src/tests/qpid-receive.cpp @@ -191,8 +191,7 @@ int main(int argc, char ** argv) int64_t interval = 0; if (opts.receiveRate) interval = qpid::sys::TIME_SEC/opts.receiveRate; - Address replyToAddress; - Sender replyToSender; + std::map<std::string,Sender> replyTo; while (!done && receiver.fetch(msg, timeout)) { reporter.message(msg); @@ -227,12 +226,12 @@ int main(int argc, char ** argv) session.acknowledge(); } if (msg.getReplyTo()) { // Echo message back to reply-to address. - if (msg.getReplyTo() != replyToAddress) { - replyToSender = session.createSender(msg.getReplyTo()); - replyToSender.setCapacity(opts.capacity); - replyToAddress = msg.getReplyTo(); + Sender& s = replyTo[msg.getReplyTo().str()]; + if (s.isNull()) { + s = session.createSender(msg.getReplyTo()); + s.setCapacity(opts.capacity); } - replyToSender.send(msg); + s.send(msg); } if (opts.receiveRate) { qpid::sys::AbsTime waitTill(start, count*interval); |