diff options
author | Alan Conway <aconway@apache.org> | 2007-03-29 22:30:48 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2007-03-29 22:30:48 +0000 |
commit | 1a23d52070195a9c8de98dd4af6e19f42051f1a5 (patch) | |
tree | a7515a61e0a46defc4ef84bea52424c38bdbba0c /cpp/lib/broker/BrokerQueue.h | |
parent | 45d083f70618d21ae9d138cf0c3d8e44c84f4f93 (diff) | |
download | qpid-python-1a23d52070195a9c8de98dd4af6e19f42051f1a5.tar.gz |
Fixed memory leak: removed Binding and ExchangeBinding.
These classes unbind a deleted queue from any Exchanges.
But Exchanges hold shared_ptr<Queue>, so queues never deleted while
the exchange exists. Moreover queue-binding form a shared_ptr cycle
causing a leak.
Raised QPID-438 for the remaining problem: destroyed queues are never
unbound or deleted
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@523857 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/lib/broker/BrokerQueue.h')
-rw-r--r-- | cpp/lib/broker/BrokerQueue.h | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/cpp/lib/broker/BrokerQueue.h b/cpp/lib/broker/BrokerQueue.h index 12f5815027..45cf317037 100644 --- a/cpp/lib/broker/BrokerQueue.h +++ b/cpp/lib/broker/BrokerQueue.h @@ -26,7 +26,6 @@ #include <queue> #include <boost/shared_ptr.hpp> #include <amqp_types.h> -#include <Binding.h> #include <ConnectionToken.h> #include <Consumer.h> #include <BrokerMessage.h> @@ -54,7 +53,6 @@ namespace qpid { */ class Queue{ typedef std::vector<Consumer*> Consumers; - typedef std::queue<Binding*> Bindings; typedef std::queue<Message::shared_ptr> Messages; const string name; @@ -62,7 +60,6 @@ namespace qpid { MessageStore* const store; const ConnectionToken* const owner; Consumers consumers; - Bindings bindings; Messages messages; bool queueing; bool dispatching; @@ -94,11 +91,6 @@ namespace qpid { void configure(const qpid::framing::FieldTable& settings); void destroy(); /** - * Informs the queue of a binding that should be cancelled on - * destruction of the queue. - */ - void bound(Binding* b); - /** * Delivers a message to the queue. Will record it as * enqueued if persistent then process it. */ |