From 6bdb9fe2b2955a8ff5665ad2908136348c678383 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Mon, 14 May 2012 15:55:03 +0000 Subject: 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@1338264 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/ha/HaPlugin.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'qpid/cpp/src') diff --git a/qpid/cpp/src/qpid/ha/HaPlugin.cpp b/qpid/cpp/src/qpid/ha/HaPlugin.cpp index 4da3b0d7d2..24977775bb 100644 --- a/qpid/cpp/src/qpid/ha/HaPlugin.cpp +++ b/qpid/cpp/src/qpid/ha/HaPlugin.cpp @@ -20,7 +20,7 @@ #include "qpid/Plugin.h" #include "qpid/Options.h" #include "qpid/broker/Broker.h" - +#include namespace qpid { namespace ha { @@ -66,7 +66,14 @@ struct HaPlugin : public Plugin { void initialize(Plugin::Target& target) { broker::Broker* broker = dynamic_cast(&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(); } }; -- cgit v1.2.1