summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-11-29 16:37:03 +0000
committerMatthew Sackman <matthew@rabbitmq.com>2010-11-29 16:37:03 +0000
commit019a3796f5c03b23c6fcc7b33271ba35dc6262e9 (patch)
treee97db1412f38a1eede2bf3079fdf4f65c3e335c1 /src
parent28fedebb44b723fb7a632d02a42fdf2519a30902 (diff)
downloadrabbitmq-server-git-019a3796f5c03b23c6fcc7b33271ba35dc6262e9.tar.gz
Lesser of many evils...
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_amqqueue.erl11
-rw-r--r--src/rabbit_router.erl6
-rw-r--r--src/rabbit_types.erl3
3 files changed, 12 insertions, 8 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index fa4175441b..5390bb8600 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -203,12 +203,13 @@ recover_durable_queues(DurableQueues) ->
declare(QueueName, Durable, AutoDelete, Args, Owner) ->
ok = check_declare_arguments(QueueName, Args),
- Q = start_queue_process(#amqqueue{name = QueueName,
- durable = Durable,
- auto_delete = AutoDelete,
- arguments = Args,
+ Q = start_queue_process(#amqqueue{name = QueueName,
+ durable = Durable,
+ auto_delete = AutoDelete,
+ arguments = Args,
exclusive_owner = Owner,
- pid = none}),
+ pid = none,
+ mirror_pids = []}),
case gen_server2:call(Q#amqqueue.pid, {init, false}) of
not_found -> rabbit_misc:not_found(QueueName);
Q1 -> Q1
diff --git a/src/rabbit_router.erl b/src/rabbit_router.erl
index 00df1ce1f7..b1ce380b81 100644
--- a/src/rabbit_router.erl
+++ b/src/rabbit_router.erl
@@ -116,7 +116,9 @@ check_delivery(_ , _ , {_ , Qs}) -> {routed, Qs}.
lookup_qpids(QNames) ->
lists:foldl(fun (QName, QPids) ->
case mnesia:dirty_read({rabbit_queue, QName}) of
- [#amqqueue{pid = QPid}] -> [QPid | QPids];
- [] -> QPids
+ [#amqqueue{pid = QPid, mirror_pids = Pids}] ->
+ Pids ++ [QPid | QPids];
+ [] ->
+ QPids
end
end, [], QNames).
diff --git a/src/rabbit_types.erl b/src/rabbit_types.erl
index b9993823d1..3a0c0925e2 100644
--- a/src/rabbit_types.erl
+++ b/src/rabbit_types.erl
@@ -136,7 +136,8 @@
auto_delete :: boolean(),
exclusive_owner :: rabbit_types:maybe(pid()),
arguments :: rabbit_framing:amqp_table(),
- pid :: rabbit_types:maybe(pid())}).
+ pid :: rabbit_types:maybe(pid()),
+ mirror_pids :: [pid()]}).
-type(exchange() ::
#exchange{name :: rabbit_exchange:name(),