diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2011-03-28 15:46:52 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2011-03-28 15:46:52 +0100 |
| commit | 0b639b478d5144373df007fbf63195fe59987222 (patch) | |
| tree | 51dd9e766fbbd88fc75bcd04f309ac1fbf4661d7 /src | |
| parent | 241d1072358daa2824ab67de028ab862a2e0d578 (diff) | |
| download | rabbitmq-server-git-0b639b478d5144373df007fbf63195fe59987222.tar.gz | |
Simplify a bit more.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_binding.erl | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl index b765d5e135..b04bc88691 100644 --- a/src/rabbit_binding.erl +++ b/src/rabbit_binding.erl @@ -410,35 +410,33 @@ merge_entry({X1, Deleted1, Bindings1}, {X2, Deleted2, Bindings2}) -> process_deletions(Deletions, transaction) -> process_deletions( - fun (Mode, X, Bindings, Acc) -> - pd_callback(transaction, Mode, X, Bindings), + fun (Event, X, Bindings, Acc) -> + pd_callback(transaction, Event, X, Bindings), dict:store(X, serial(X), Acc) end, - Deletions, dict:new(), true); + Deletions, dict:new()); process_deletions(Deletions, Serials) -> process_deletions( - fun (Mode, X, Bindings, Acc) -> - pd_callback(dict:fetch(X, Serials), Mode, X, Bindings), - case Mode of + fun (Event, X, Bindings, Acc) -> + [rabbit_event:notify(binding_deleted, info(B)) || B <- Bindings], + pd_callback(dict:fetch(X, Serials), Event, X, Bindings), + case Event of delete -> rabbit_event:notify(exchange_deleted, [{name, X#exchange.name}]); _ -> ok end, Acc end, - Deletions, ok, false). + Deletions, ok). -process_deletions(Fun, Deletions, Acc0, Tx) -> +process_deletions(Fun, Deletions, Acc0) -> dict:fold( fun (_XName, {X, Deleted, Bindings}, Acc) -> - FlatBindings = lists:flatten(Bindings), - [rabbit_event:notify_if(not Tx, binding_deleted, info(B)) || - B <- FlatBindings], - case Deleted of - not_deleted -> Fun(remove_bindings, X, FlatBindings, Acc); - deleted -> Fun(delete, X, FlatBindings, Acc) - end + Fun(case Deleted of + not_deleted -> remove_bindings; + deleted -> delete + end, X, lists:flatten(Bindings), Acc) end, Acc0, Deletions). pd_callback(Arg, CB, X, Bindings) -> |
