diff options
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 8 |
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), |
