summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-01-18 08:49:38 +0000
committerMatthias Radestock <matthias@rabbitmq.com>2011-01-18 08:49:38 +0000
commit8ab52000e6720a3e6e0fe467c7e69c5fe677cbfc (patch)
tree0c965608e5505b143cefbd73d221fc067cb5fde7
parentef8b8babda9b5fe1125ede19d646812dd99cebf4 (diff)
downloadrabbitmq-server-8ab52000e6720a3e6e0fe467c7e69c5fe677cbfc.tar.gz
small simplifying refactor
-rw-r--r--src/rabbit_amqqueue.erl34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index a16ef997..9626e126 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -212,27 +212,23 @@ declare(QueueName, Durable, AutoDelete, Args, Owner) ->
Q1 -> Q1
end.
-internal_declare(Q = #amqqueue{name = QueueName}, Recover) ->
+internal_declare(Q, true) ->
+ rabbit_misc:execute_mnesia_tx_with_tail(
+ fun () -> ok = store_queue(Q), rabbit_misc:const(Q) end);
+internal_declare(Q = #amqqueue{name = QueueName}, false) ->
rabbit_misc:execute_mnesia_tx_with_tail(
fun () ->
- case Recover of
- true ->
- ok = store_queue(Q),
- rabbit_misc:const(Q);
- false ->
- case mnesia:wread({rabbit_queue, QueueName}) of
- [] ->
- case mnesia:read({rabbit_durable_queue,
- QueueName}) of
- [] -> ok = store_queue(Q),
- B = add_default_binding(Q),
- fun (Tx) -> B(Tx), Q end;
- [_] -> %% Q exists on stopped node
- rabbit_misc:const(not_found)
- end;
- [ExistingQ] ->
- rabbit_misc:const(ExistingQ)
- end
+ case mnesia:wread({rabbit_queue, QueueName}) of
+ [] ->
+ case mnesia:read({rabbit_durable_queue, QueueName}) of
+ [] -> ok = store_queue(Q),
+ B = add_default_binding(Q),
+ fun (Tx) -> B(Tx), Q end;
+ [_] -> %% Q exists on stopped node
+ rabbit_misc:const(not_found)
+ end;
+ [ExistingQ] ->
+ rabbit_misc:const(ExistingQ)
end
end).