diff options
author | Simon MacMullen <simon@lshift.net> | 2010-05-26 16:49:09 +0100 |
---|---|---|
committer | Simon MacMullen <simon@lshift.net> | 2010-05-26 16:49:09 +0100 |
commit | 163da66fe3fb4eeddff74dbb0f9f031032ef9c90 (patch) | |
tree | f27dfe6dad9f361c60cb2a75171d0232665e234f | |
parent | 0673151ef348ad8d34c65fcfa08679175a57d850 (diff) | |
download | rabbitmq-server-163da66fe3fb4eeddff74dbb0f9f031032ef9c90.tar.gz |
Move F into with_or_die.
-rw-r--r-- | src/rabbit_channel.erl | 23 |
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 = <<>> }) -> |