summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2011-02-09 18:46:23 +0000
committerAlan Conway <aconway@apache.org>2011-02-09 18:46:23 +0000
commit70ffbc6ea611722f31e742b11f4ed547dec8d713 (patch)
treed9bb874c5a23522812368b3b28e7fc6c02571054
parent2037c65282c85a25bbf4fc7bcbcef7ce43ff3ed7 (diff)
downloadqpid-python-70ffbc6ea611722f31e742b11f4ed547dec8d713.tar.gz
Added design note comment to qpid/cpp/src/qpid/cluster/ClusterTimer.cpp
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1069029 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/cluster/ClusterTimer.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/cluster/ClusterTimer.cpp b/qpid/cpp/src/qpid/cluster/ClusterTimer.cpp
index baeaafb478..f6e1c7a849 100644
--- a/qpid/cpp/src/qpid/cluster/ClusterTimer.cpp
+++ b/qpid/cpp/src/qpid/cluster/ClusterTimer.cpp
@@ -5,7 +5,7 @@
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
+ * "License "); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
@@ -33,6 +33,25 @@ using std::max;
using sys::Timer;
using sys::TimerTask;
+//
+// Note on use of Broker::getTimer() rather than getClusterTime in broker code.
+// The following uses of getTimer() are cluster safe:
+//
+// LinkRegistry: maintenance visits in timer can call Bridge::create/cancel
+// but these don't modify any management state.
+//
+// broker::Connection:
+// - Heartbeats use ClusterOrderOutput to ensure consistency
+// - timeout: aborts connection in timer, cluster does an orderly connection close.
+//
+// SessionState: scheduledCredit - uses ClusterOrderProxy
+// Broker::queueCleaner: cluster implements ExpiryPolicy for consistent expiry.
+//
+// Broker::dtxManager: dtx disabled with cluster.
+//
+// requestIOProcessing: called in doOutput.
+//
+
ClusterTimer::ClusterTimer(Cluster& c) : cluster(c) {
// Allow more generous overrun threshold with cluster as we