Fix dequeue error

This commit is contained in:
JianBo He 2019-12-27 11:27:55 +08:00 committed by turtleDeng
parent c1f8d7de2f
commit d409e25e76
1 changed files with 6 additions and 2 deletions

View File

@ -1033,12 +1033,16 @@ drain_q(Cnt, Msgs, Q) ->
case emqx_message:is_expired(Msg) of
true ->
ok = emqx_metrics:inc('messages.expired'),
drain_q(Cnt-1, Msgs, Q1);
drain_q(Cnt, Msgs, Q1);
false ->
drain_q(Cnt-1, [Msg|Msgs], Q1)
drain_q(acc_cnt(Msg, Cnt), [Msg|Msgs], Q1)
end
end.
-compile({inline, [acc_cnt/2]}).
acc_cnt(#message{qos = ?QOS_0}, Cnt) -> Cnt;
acc_cnt(_Msg, Cnt) -> Cnt - 1.
%%------------------------------------------------------------------------------
%% Ensure timers