summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2012-06-07 18:01:13 +0100
committerSimon MacMullen <simon@rabbitmq.com>2012-06-07 18:01:13 +0100
commitde9b7e140e9fd5ef08d374f7f33252efee9fd729 (patch)
tree8bc761a4f671f3791282a64604ddfe3095be0fc2 /src
parent359d21f94162d451e79f3430be220983652f7922 (diff)
downloadrabbitmq-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.erl9
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) ->