summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2011-07-25 13:12:19 +0000
committerAlan Conway <aconway@apache.org>2011-07-25 13:12:19 +0000
commit2acf99898514e6c44c8817f2962a64258c6e301a (patch)
treea93631adb5ae233b34b4d1d75bcfc1b53a0a2dc2
parent4bdcae965d344ca21210303b47d941e13a9a4e3c (diff)
downloadqpid-python-2acf99898514e6c44c8817f2962a64258c6e301a.tar.gz
QPID-2920: Sleep on cpg flow control to avoid thrashing.
Added a 1ms sleep when CPG is flow controlled. Huge thruput improvement for qpid-cluster-benchmarks multi-host case. git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/qpid-2920@1150684 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp b/qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp
index bdf6c33387..cf8703ca59 100644
--- a/qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp
+++ b/qpid/cpp/src/qpid/cluster/exp/Multicaster.cpp
@@ -65,6 +65,7 @@ Multicaster::sendMcast(const PollableEventQueue::Batch& buffers) {
std::transform(i, j, ioVector.begin(), &bufToIov);
if (!cpg.mcast(&ioVector[0], len)) {
// CPG didn't send because of CPG flow control.
+ ::usleep(1000); // Don't spin too tightly.
return i;
}
i = j;