summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/Cluster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/cluster/Cluster.cpp')
-rw-r--r--cpp/src/qpid/cluster/Cluster.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/cpp/src/qpid/cluster/Cluster.cpp b/cpp/src/qpid/cluster/Cluster.cpp
index acf4206629..b7545ad706 100644
--- a/cpp/src/qpid/cluster/Cluster.cpp
+++ b/cpp/src/qpid/cluster/Cluster.cpp
@@ -913,6 +913,7 @@ bool Cluster::isExpectingUpdate() {
return state <= UPDATEE;
}
+// Called in update thread or deliver thread.
void Cluster::checkUpdateIn(Lock& l) {
if (state != UPDATEE) return; // Wait till we reach the stall point.
if (!updateClosed) return; // Wait till update connection closes.
@@ -926,10 +927,11 @@ void Cluster::checkUpdateIn(Lock& l) {
// thread. It will be updated on delivery of the "ready" we just mcast.
broker.setClusterUpdatee(false);
if (mAgent) mAgent->suppress(false); // Enable management output.
- discarding = false; // ok to set, we're stalled for update.
+ discarding = false; // OK to set, we're stalled for update.
QPID_LOG(notice, *this << " update complete, starting catch-up.");
- QPID_LOG(debug, debugSnapshot());
+ QPID_LOG(debug, debugSnapshot()); // OK to call because we're stalled.
if (mAgent) mAgent->clusterUpdate();
+ enableClusterSafe(); // Enable cluster-safe assertions
deliverEventQueue.start();
}
else if (updateRetracted) { // Update was retracted, request another update