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