summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Bridgen <mikeb@lshift.net>2009-11-04 11:22:38 +0000
committerMichael Bridgen <mikeb@lshift.net>2009-11-04 11:22:38 +0000
commit1bd21d7c2c2055a2e48f9f656ab6507afc159f7b (patch)
tree3aa46587da9cc2c922c4bf62110370ea94ae9a21
parentd239db13197fc07b56843c5d0594556ecaa03c82 (diff)
downloadrabbitmq-server-git-1bd21d7c2c2055a2e48f9f656ab6507afc159f7b.tar.gz
bug 21385: Make basic.get respect exclusivity
-rw-r--r--src/rabbit_channel.erl6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl
index baa3975221..759840aad1 100644
--- a/src/rabbit_channel.erl
+++ b/src/rabbit_channel.erl
@@ -372,12 +372,16 @@ handle_method(#'basic.ack'{delivery_tag = DeliveryTag,
handle_method(#'basic.get'{queue = QueueNameBin,
no_ack = NoAck},
_, State = #ch{ writer_pid = WriterPid,
+ reader_pid = ReaderPid,
next_tag = DeliveryTag }) ->
QueueName = expand_queue_name_shortcut(QueueNameBin, State),
check_read_permitted(QueueName, State),
case rabbit_amqqueue:with_or_die(
QueueName,
- fun (Q) -> rabbit_amqqueue:basic_get(Q, self(), NoAck) end) of
+ fun (Q) ->
+ check_queue_exclusivity(ReaderPid, Q),
+ rabbit_amqqueue:basic_get(Q, self(), NoAck)
+ end) of
{ok, MessageCount,
Msg = {_QName, _QPid, _MsgId, Redelivered,
#basic_message{exchange_name = ExchangeName,