summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_binding.erl14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl
index a6907b8ce6..f2bcd93b74 100644
--- a/src/rabbit_binding.erl
+++ b/src/rabbit_binding.erl
@@ -343,9 +343,6 @@ binding_action(Binding = #binding{source = SrcName,
Fun(Src, Dst, Binding#binding{args = SortedArgs})
end, ErrFun).
-dirty_delete_object(Table, Record, _LockKind) ->
- mnesia:dirty_delete_object(Table, Record).
-
sync_route(Route, true, true, Fun) ->
ok = Fun(rabbit_durable_route, Route, write),
sync_route(Route, false, true, Fun);
@@ -415,15 +412,15 @@ remove_routes(Routes) ->
%% Of course the destination might not really be durable but it's
%% just as easy to try to delete it from the semi-durable table
%% than check first
- [ok = sync_route(R, false, true, fun dirty_delete_object/3) ||
+ [ok = sync_route(R, false, true, fun mnesia:delete_object/3) ||
R <- RamRoutes],
- [ok = sync_route(R, true, true, fun dirty_delete_object/3) ||
+ [ok = sync_route(R, true, true, fun mnesia:delete_object/3) ||
R <- DiskRoutes],
[R#route.binding || R <- Routes].
remove_transient_routes(Routes) ->
[begin
- ok = sync_transient_route(R, fun dirty_delete_object/3),
+ ok = sync_transient_route(R, fun mnesia:delete_object/3),
R#route.binding
end || R <- Routes].
@@ -447,10 +444,7 @@ remove_for_destination(DstName, OnlyDurable, Fun) ->
lists:keysort(#binding.source, Bindings), OnlyDurable).
%% Instead of locking entire table on remove operations we can lock the
-%% affected resource only. This will allow us to use dirty_match_object for
-%% do faster search of records to delete.
-%% This works better when there are multiple resources deleted at once, for
-%% example when exclusive queues are deleted.
+%% affected resource only.
lock_resource(Name) ->
mnesia:lock({global, Name, mnesia:table_info(rabbit_route, where_to_write)},
write).