From 92be0a347cdfd9c407611982c72938ecde777a8c Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Mon, 25 May 2009 18:20:50 +0000 Subject: PollableQueue optimization - replace deque with vector. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@778464 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/cluster/Multicaster.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'cpp/src/qpid/cluster/Multicaster.cpp') diff --git a/cpp/src/qpid/cluster/Multicaster.cpp b/cpp/src/qpid/cluster/Multicaster.cpp index f72867de4d..fee13c92c8 100644 --- a/cpp/src/qpid/cluster/Multicaster.cpp +++ b/cpp/src/qpid/cluster/Multicaster.cpp @@ -71,9 +71,9 @@ void Multicaster::mcast(const Event& e) { } -void Multicaster::sendMcast(PollableEventQueue::Queue& values) { +Multicaster::PollableEventQueue::Batch::const_iterator Multicaster::sendMcast(const PollableEventQueue::Batch& values) { try { - PollableEventQueue::Queue::iterator i = values.begin(); + PollableEventQueue::Batch::const_iterator i = values.begin(); while( i != values.end()) { iovec iov = i->toIovec(); if (!cpg.mcast(&iov, 1)) { @@ -82,12 +82,13 @@ void Multicaster::sendMcast(PollableEventQueue::Queue& values) { } ++i; } - values.erase(values.begin(), i); // Erase sent events. + return i; } catch (const std::exception& e) { QPID_LOG(critical, "Multicast error: " << e.what()); queue.stop(); onError(); + return values.end(); } } -- cgit v1.2.1