summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Queue.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/broker/Queue.h')
-rw-r--r--cpp/src/qpid/broker/Queue.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Queue.h b/cpp/src/qpid/broker/Queue.h
index 7890e46b03..339fcc8ce1 100644
--- a/cpp/src/qpid/broker/Queue.h
+++ b/cpp/src/qpid/broker/Queue.h
@@ -326,6 +326,18 @@ namespace qpid {
*/
void recoveryComplete();
+ /**
+ * This is a hack to avoid deadlocks in durable ring
+ * queues. It is used for dequeueing messages in response
+ * to an enqueue while avoid holding lock over call to
+ * store.
+ *
+ * Assumes messageLock is held - true for curent use case
+ * (QueuePolicy::tryEnqueue()) but rather nasty as this is a public
+ * method
+ **/
+ void addPendingDequeue(const QueuedMessage &msg);
+
// For cluster update
QueueListeners& getListeners();
};