Add a test case to cover timeout message flush in emqx_misc
This commit is contained in:
parent
25b61afe0d
commit
f75a624197
|
@ -36,14 +36,13 @@ start_timer(Interval, Dest, Msg) ->
|
|||
erlang:start_timer(Interval, Dest, Msg).
|
||||
|
||||
-spec(cancel_timer(undefined | reference()) -> ok).
|
||||
cancel_timer(undefined) ->
|
||||
ok;
|
||||
cancel_timer(Timer) ->
|
||||
case catch erlang:cancel_timer(Timer) of
|
||||
cancel_timer(Timer) when is_reference(Timer) ->
|
||||
case erlang:cancel_timer(Timer) of
|
||||
false ->
|
||||
receive {timeout, Timer, _} -> ok after 0 -> ok end;
|
||||
_ -> ok
|
||||
end.
|
||||
end;
|
||||
cancel_timer(_) -> ok.
|
||||
|
||||
-spec(proc_name(atom(), pos_integer()) -> atom()).
|
||||
proc_name(Mod, Id) ->
|
||||
|
|
|
@ -15,6 +15,13 @@
|
|||
-module(emqx_misc_tests).
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
|
||||
timer_cancel_flush_test() ->
|
||||
Timer = emqx_misc:start_timer(0, foo),
|
||||
ok = emqx_misc:cancel_timer(Timer),
|
||||
receive {timeout, Timer, foo} -> error(unexpected)
|
||||
after 0 -> ok
|
||||
end.
|
||||
|
||||
shutdown_disabled_test() ->
|
||||
with_env(
|
||||
[{conn_max_msg_queue_len, 0},
|
||||
|
|
Loading…
Reference in New Issue