diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2012-06-07 18:01:13 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2012-06-07 18:01:13 +0100 |
| commit | de9b7e140e9fd5ef08d374f7f33252efee9fd729 (patch) | |
| tree | 8bc761a4f671f3791282a64604ddfe3095be0fc2 /src | |
| parent | 359d21f94162d451e79f3430be220983652f7922 (diff) | |
| download | rabbitmq-server-git-de9b7e140e9fd5ef08d374f7f33252efee9fd729.tar.gz | |
peek_serial/1 should not depend on having next_serial/1 run first.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_exchange.erl | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index 518e88180a..f43fbbe720 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -408,18 +408,15 @@ unconditional_delete(X = #exchange{name = XName}) -> {deleted, X, Bindings, rabbit_binding:remove_for_destination(XName)}. next_serial(XName) -> - Serial = case mnesia:read(rabbit_exchange_serial, XName, write) of - [#exchange_serial{next = Next}] -> Next; - [] -> 1 - end, + Serial = peek_serial(XName), ok = mnesia:write(rabbit_exchange_serial, #exchange_serial{name = XName, next = Serial + 1}, write), Serial. peek_serial(XName) -> - case mnesia:read({rabbit_exchange_serial, XName}) of + case mnesia:read(rabbit_exchange_serial, XName, write) of [#exchange_serial{next = Serial}] -> Serial; - _ -> undefined + _ -> 1 end. invalid_module(T) -> |
