summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-04-08 11:41:08 +0100
committerSimon MacMullen <simon@rabbitmq.com>2011-04-08 11:41:08 +0100
commitc7ecf0f981f68d61589473b0ae159faae6006693 (patch)
treebec19d69d4310d2681e60676dd353d310de1851d /src
parent4e76d023f58295991cdb5c9c1de096f75a6bd3bd (diff)
downloadrabbitmq-server-git-c7ecf0f981f68d61589473b0ae159faae6006693.tar.gz
Callbacks should come after mnesia writes.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_binding.erl4
-rw-r--r--src/rabbit_exchange.erl6
2 files changed, 5 insertions, 5 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl
index ec64c47476..611f790935 100644
--- a/src/rabbit_binding.erl
+++ b/src/rabbit_binding.erl
@@ -110,11 +110,11 @@ recover(XNames, QNames) ->
end,
fun (R = #route{binding = B = #binding{source = Src}}, Tx) ->
{ok, X} = rabbit_exchange:lookup(Src),
- rabbit_exchange:callback(X, add_bindings, [Tx, X, [B]]),
case Tx of
true -> ok = sync_transient_binding(R, fun mnesia:write/3);
false -> ok
- end
+ end,
+ rabbit_exchange:callback(X, add_bindings, [Tx, X, [B]])
end,
rabbit_durable_route),
ok.
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index 3e4edba437..a74f9d2880 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -87,12 +87,12 @@ recover() ->
fun (#exchange{name = XName}) ->
mnesia:read({rabbit_exchange, XName}) =:= []
end,
- fun (X, Tx) -> rabbit_exchange:callback(X, create, [Tx, X]),
- case Tx of
+ fun (X, Tx) -> case Tx of
true -> ok = mnesia:write(rabbit_exchange,
X, write);
false -> ok
- end
+ end,
+ rabbit_exchange:callback(X, create, [Tx, X])
end,
rabbit_durable_exchange),
[XName || #exchange{name = XName} <- Xs].