summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2008-09-26 20:44:01 +0100
committerMatthias Radestock <matthias@lshift.net>2008-09-26 20:44:01 +0100
commit61d7ddfec0915c22a502a8eba27ac71071ca958d (patch)
tree9b43800a290380df0e0ea436724907d6404ec9fd /src
parentfcf48b3d9a271fcbee9701825b433e5292c205b6 (diff)
downloadrabbitmq-server-git-61d7ddfec0915c22a502a8eba27ac71071ca958d.tar.gz
some simplifications
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_exchange.erl20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index d362f4e90a..c500f19573 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -210,25 +210,21 @@ route(#exchange{name = Name, type = topic}, RoutingKey) ->
% TODO: This causes a full scan for each entry
% with the same exchange (see bug 19336)
topic_matches(BindingKey, RoutingKey)]),
- lookup_qpids(mnesia:activity(async_dirty, fun() -> qlc:e(Query) end));
+ lookup_qpids(mnesia:async_dirty(fun qlc:e/1, [Query]));
route(#exchange{name = Name}, RoutingKey) ->
MatchHead = #route{binding = #binding{exchange_name = Name,
key = RoutingKey,
queue_name = '$1'}},
- lookup_qpids(
- mnesia:activity(
- async_dirty,
- fun() -> mnesia:select(route, [{MatchHead, [], ['$1']}]) end)).
+ lookup_qpids(mnesia:dirty_select(route, [{MatchHead, [], ['$1']}])).
lookup_qpids(Queues) ->
- Set = sets:from_list(Queues),
- Fun = fun() ->
- sets:fold(
- fun(Key, Acc) -> [#amqqueue{pid = QPid}] = mnesia:read({amqqueue, Key}),
- [QPid | Acc] end,
- [], Set) end,
- mnesia:activity(async_dirty, Fun).
+ mnesia:async_dirty(
+ fun sets:fold/3,
+ [fun(Key, Acc) ->
+ [#amqqueue{pid = QPid}] = mnesia:read({amqqueue, Key}),
+ [QPid | Acc]
+ end, [], sets:from_list(Queues)]).
% TODO: Should all of the route and binding management not be refactored to it's own module
% Especially seeing as unbind will have to be implemented for 0.91 ?