diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2011-04-08 11:41:08 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2011-04-08 11:41:08 +0100 |
| commit | c7ecf0f981f68d61589473b0ae159faae6006693 (patch) | |
| tree | bec19d69d4310d2681e60676dd353d310de1851d /src | |
| parent | 4e76d023f58295991cdb5c9c1de096f75a6bd3bd (diff) | |
| download | rabbitmq-server-git-c7ecf0f981f68d61589473b0ae159faae6006693.tar.gz | |
Callbacks should come after mnesia writes.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_binding.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_exchange.erl | 6 |
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]. |
