summaryrefslogtreecommitdiff
path: root/cpp/src
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
commit96a2e320055b5d0029ff1ac19e15980c290cb8b5 (patch)
treefe4026abd04ca50380a5d008679b88cf866cfad1 /cpp/src
parent8f24af12ad55b4385eea901464885a95704eaf04 (diff)
downloadqpid-python-96a2e320055b5d0029ff1ac19e15980c290cb8b5.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/qpid@1069029 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/cluster/ClusterTimer.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/cpp/src/qpid/cluster/ClusterTimer.cpp b/cpp/src/qpid/cluster/ClusterTimer.cpp
index baeaafb478..f6e1c7a849 100644
--- a/cpp/src/qpid/cluster/ClusterTimer.cpp
+++ b/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