summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2010-08-25 11:38:07 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2010-08-25 11:38:07 +0100
commit7324368077c4ad58a0fd0795e9d53d034ec0dff9 (patch)
treebc2b1bcf39264309ec3db3aa74761a1f66c0b2cb
parentde6542707b5f94157787b1563ce4ba6dcadc216b (diff)
downloadrabbitmq-server-7324368077c4ad58a0fd0795e9d53d034ec0dff9.tar.gz
exclusive queues are deleted quickly on unclean connection termination
-rw-r--r--src/rabbit_amqqueue_process.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index e0ededf1..986fd70a 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -43,7 +43,7 @@
-export([init/1, terminate/2, code_change/3, handle_call/3, handle_cast/2,
handle_info/2, handle_pre_hibernate/1, prioritise_call/3,
- prioritise_cast/2]).
+ prioritise_cast/2, prioritise_info/2]).
-import(queue).
-import(erlang).
@@ -617,6 +617,12 @@ prioritise_cast(Msg, _State) ->
_ -> 0
end.
+prioritise_info({'DOWN', _MonitorRef, process, DownPid, _Reason},
+ State = #q{q = #amqqueue{exclusive_owner = DownPid}}) ->
+ 9;
+prioritise_info(_Msg, _State) ->
+ 0.
+
handle_call({init, Recover}, From,
State = #q{q = #amqqueue{exclusive_owner = none}}) ->
declare(Recover, From, State);