summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-04-08 17:03:58 +0100
committerSimon MacMullen <simon@rabbitmq.com>2011-04-08 17:03:58 +0100
commit04c7af27dbf7a697e07afcd7b5bc8025ae24bac2 (patch)
tree7359edf810ec9931b506642db5d957e27438ea68
parente252f65938afc8be2987866acb2107420f0c9c1e (diff)
downloadrabbitmq-server-git-04c7af27dbf7a697e07afcd7b5bc8025ae24bac2.tar.gz
Oops.
-rw-r--r--src/rabbit_binding.erl12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl
index 84584a1cce..583d4fa44b 100644
--- a/src/rabbit_binding.erl
+++ b/src/rabbit_binding.erl
@@ -116,12 +116,14 @@ recover(XNames, QNames) ->
mnesia:read({rabbit_semi_durable_route, B}) =/= []
end,
fun (R = #route{binding = B = #binding{source = Src}}, Tx) ->
- case Tx of
- true -> ok = sync_transient_binding(R, fun mnesia:write/3);
- false -> ok
- end,
{ok, X} = rabbit_exchange:lookup(Src),
- rabbit_exchange:callback(X, add_binding, [Tx, X, B])
+ Serial = case Tx of
+ true -> ok = sync_transient_binding(
+ R, fun mnesia:write/3),
+ transaction;
+ false -> rabbit_exchange:serial(X)
+ end,
+ rabbit_exchange:callback(X, add_binding, [Serial, X, B])
end,
rabbit_semi_durable_route),
ok.