summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/QueueEvents.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2009-05-25 18:20:50 +0000
committerAlan Conway <aconway@apache.org>2009-05-25 18:20:50 +0000
commit92be0a347cdfd9c407611982c72938ecde777a8c (patch)
tree0b75b63ba491584667af21d244df96648636d9e7 /cpp/src/qpid/broker/QueueEvents.cpp
parent21dd878012fad826d335bc8aa7d9e9b88da7d6ff (diff)
downloadqpid-python-92be0a347cdfd9c407611982c72938ecde777a8c.tar.gz
PollableQueue optimization - replace deque with vector.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@778464 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/QueueEvents.cpp')
-rw-r--r--cpp/src/qpid/broker/QueueEvents.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/cpp/src/qpid/broker/QueueEvents.cpp b/cpp/src/qpid/broker/QueueEvents.cpp
index 7525e4cb76..c501a0ffbc 100644
--- a/cpp/src/qpid/broker/QueueEvents.cpp
+++ b/cpp/src/qpid/broker/QueueEvents.cpp
@@ -66,15 +66,14 @@ void QueueEvents::unregisterListener(const std::string& id)
}
}
-void QueueEvents::handle(EventQueue::Queue& events)
-{
+QueueEvents::EventQueue::Batch::const_iterator
+QueueEvents::handle(const EventQueue::Batch& events) {
qpid::sys::Mutex::ScopedLock l(lock);
- while (!events.empty()) {
- for (Listeners::iterator i = listeners.begin(); i != listeners.end(); i++) {
- i->second(events.front());
- }
- events.pop_front();
+ for (EventQueue::Batch::const_iterator i = events.begin(); i != events.end(); ++i) {
+ for (Listeners::iterator j = listeners.begin(); j != listeners.end(); j++)
+ j->second(*i);
}
+ return events.end();
}
void QueueEvents::shutdown()