diff options
| -rw-r--r-- | src/rabbit_variable_queue.erl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index d4f51f8d4a..7131714b2a 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -533,7 +533,11 @@ publish_delivered(true, Msg = #basic_message { is_persistent = IsPersistent, unconfirmed = UC1 }))}. drain_confirmed(State = #vqstate { confirmed = C }) -> - {gb_sets:to_list(C), State #vqstate { confirmed = gb_sets:new() }}. + case gb_sets:is_empty(C) of + true -> {[], State}; %% common case + false -> {gb_sets:to_list(C), State #vqstate { + confirmed = gb_sets:new() }} + end. dropwhile(Pred, State) -> case queue_out(State) of |
