summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/ha/Backup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/ha/Backup.cpp')
-rw-r--r--qpid/cpp/src/qpid/ha/Backup.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/ha/Backup.cpp b/qpid/cpp/src/qpid/ha/Backup.cpp
index 90c615aaf5..4b9cef05bc 100644
--- a/qpid/cpp/src/qpid/ha/Backup.cpp
+++ b/qpid/cpp/src/qpid/ha/Backup.cpp
@@ -83,6 +83,8 @@ void Backup::initialize(const Url& brokers) {
false, // durable
settings.mechanism, settings.username, settings.password,
false); // amq.failover
+
+ sys::Mutex::ScopedLock l(lock);
link = result.first;
link->setUrl(url);
replicator.reset(new BrokerReplicator(haBroker, link));
@@ -93,7 +95,6 @@ void Backup::initialize(const Url& brokers) {
Backup::~Backup() {
if (link) link->close();
if (replicator.get()) broker.getExchanges().destroy(replicator->getName());
- replicator.reset();
}