diff options
Diffstat (limited to 'cpp/src/qpid/broker/Queue.h')
| -rw-r--r-- | cpp/src/qpid/broker/Queue.h | 12 |
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(); }; |
