diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2011-03-28 22:11:42 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2011-03-28 22:11:42 +0100 |
commit | 38d77c1bf557479c892c04da8f5f6d390847474c (patch) | |
tree | de5d9b3065b7f98aa10d880dc32d87c5a928defa | |
parent | 6459424a0c246cd21b64d46d3b16a950487d5ab1 (diff) | |
download | rabbitmq-server-38d77c1bf557479c892c04da8f5f6d390847474c.tar.gz |
refactor: make add_notify do what it says (and no more)
-rw-r--r-- | src/rabbit_binding.erl | 13 |
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. |