diff options
| author | Alan Conway <aconway@apache.org> | 2012-05-14 15:55:03 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2012-05-14 15:55:03 +0000 |
| commit | 739a9c20ab55fd770174347f7a44552c5df21ecd (patch) | |
| tree | 5f6666a59c42bfa7b8a2475d80b3aa6bc8e807e6 /cpp | |
| parent | 599d5bdb0255d02bb0d791d690f70679d63cfb7c (diff) | |
| download | qpid-python-739a9c20ab55fd770174347f7a44552c5df21ecd.tar.gz | |
QPID-3603: Add finalizer for HaPlugin, fix hang on exit not responding to kill -TERM.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1338264 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
| -rw-r--r-- | cpp/src/qpid/ha/HaPlugin.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/cpp/src/qpid/ha/HaPlugin.cpp b/cpp/src/qpid/ha/HaPlugin.cpp index 4da3b0d7d2..24977775bb 100644 --- a/cpp/src/qpid/ha/HaPlugin.cpp +++ b/cpp/src/qpid/ha/HaPlugin.cpp @@ -20,7 +20,7 @@ #include "qpid/Plugin.h" #include "qpid/Options.h" #include "qpid/broker/Broker.h" - +#include <boost/bind.hpp> namespace qpid { namespace ha { @@ -66,7 +66,14 @@ struct HaPlugin : public Plugin { void initialize(Plugin::Target& target) { broker::Broker* broker = dynamic_cast<broker::Broker*>(&target); - if (broker) haBroker.reset(new ha::HaBroker(*broker, settings)); + if (broker) { + haBroker.reset(new ha::HaBroker(*broker, settings)); + broker->addFinalizer(boost::bind(&HaPlugin::finalize, this)); + } + } + + void finalize() { + haBroker.reset(); } }; |
