summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_amqqueue_process.erl8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index c64b4877e8..d5d68c7aa0 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -1260,8 +1260,12 @@ handle_call(purge, From, State = #q{backing_queue = BQ,
fun (_) -> true end,
mk_dead_letter_fun(queue_purged, State),
BQS),
- noreply(State#q{backing_queue_state = BQS1,
- blocked_op = {purge, {From, BQ:len(BQS)}}});
+ case BQ:len(BQS) of
+ 0 -> reply({ok, 0}, State#q{backing_queue_state = BQS1});
+ _ -> noreply(
+ State#q{backing_queue_state = BQS1,
+ blocked_op = {purge, {From, BQ:len(BQS)}}})
+ end;
handle_call({requeue, AckTags, ChPid}, From, State) ->
gen_server2:reply(From, ok),