summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@lshift.net>2010-05-26 16:49:09 +0100
committerSimon MacMullen <simon@lshift.net>2010-05-26 16:49:09 +0100
commit163da66fe3fb4eeddff74dbb0f9f031032ef9c90 (patch)
treef27dfe6dad9f361c60cb2a75171d0232665e234f
parent0673151ef348ad8d34c65fcfa08679175a57d850 (diff)
downloadrabbitmq-server-163da66fe3fb4eeddff74dbb0f9f031032ef9c90.tar.gz
Move F into with_or_die.
-rw-r--r--src/rabbit_channel.erl23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl
index 39a43e60..48eeb40a 100644
--- a/src/rabbit_channel.erl
+++ b/src/rabbit_channel.erl
@@ -299,17 +299,24 @@ check_read_permitted(Resource, #ch{ username = Username}) ->
check_resource_access(Username, Resource, read).
with_exclusive_access_or_die(QName, ReaderPid, F) ->
- Q = rabbit_amqqueue:with_or_die(QName, fun(Q1) -> Q1 end),
- case Q of
- #amqqueue{exclusive_owner = none} ->
- F(Q);
- #amqqueue{exclusive_owner = ReaderPid} ->
- F(Q);
- _ ->
+ F2 = fun(Q) ->
+ case Q of
+ #amqqueue{exclusive_owner = none} ->
+ F(Q);
+ #amqqueue{exclusive_owner = ReaderPid} ->
+ F(Q);
+ E ->
+ {error, E}
+ end
+ end,
+ case rabbit_amqqueue:with_or_die(QName, F2) of
+ {error, _} ->
rabbit_misc:protocol_error(
resource_locked,
"cannot obtain exclusive access to locked ~s",
- [rabbit_misc:rs(Q#amqqueue.name)])
+ [rabbit_misc:rs(QName)]);
+ Q ->
+ Q
end.
expand_queue_name_shortcut(<<>>, #ch{ most_recently_declared_queue = <<>> }) ->