summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-03-28 22:11:42 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2011-03-28 22:11:42 +0100
commit38d77c1bf557479c892c04da8f5f6d390847474c (patch)
treede5d9b3065b7f98aa10d880dc32d87c5a928defa
parent6459424a0c246cd21b64d46d3b16a950487d5ab1 (diff)
downloadrabbitmq-server-38d77c1bf557479c892c04da8f5f6d390847474c.tar.gz
refactor: make add_notify do what it says (and no more)
-rw-r--r--src/rabbit_binding.erl13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl
index 1092948a..b6324bb5 100644
--- a/src/rabbit_binding.erl
+++ b/src/rabbit_binding.erl
@@ -122,7 +122,9 @@ add(Binding, InnerFun) ->
case InnerFun(Src, Dst) of
ok ->
case mnesia:read({rabbit_route, B}) of
- [] -> add_notify(Src, Dst, B);
+ [] -> ok = sync_binding(B, all_durable([Src, Dst]),
+ fun mnesia:write/3),
+ add_notify(Src, B);
[_] -> fun rabbit_misc:const_ok/0
end;
{error, _} = Err ->
@@ -130,12 +132,11 @@ add(Binding, InnerFun) ->
end
end).
-add_notify(Src, Dst, B) ->
- ok = sync_binding(B, all_durable([Src, Dst]), fun mnesia:write/3),
- ok = rabbit_exchange:callback(Src, add_binding, [transaction, Src, B]),
- Serial = rabbit_exchange:serial(Src),
+add_notify(X, B) ->
+ ok = rabbit_exchange:callback(X, add_binding, [transaction, X, B]),
+ Serial = rabbit_exchange:serial(X),
fun () ->
- ok = rabbit_exchange:callback(Src, add_binding, [Serial, Src, B]),
+ ok = rabbit_exchange:callback(X, add_binding, [Serial, X, B]),
ok = rabbit_event:notify(binding_created, info(B))
end.