diff options
author | Raimo Niskanen <raimo@erlang.org> | 2019-09-11 15:39:25 +0200 |
---|---|---|
committer | Raimo Niskanen <raimo@erlang.org> | 2019-09-11 15:43:45 +0200 |
commit | 7418cfdf7100ebfc69b68d4c46f36ea679ec26e3 (patch) | |
tree | b4f6e52a1d4e584356a5770f37caa4645e0f758e | |
parent | be7de82343a71a4e5e30606fdcb34697218c4c77 (diff) | |
download | erlang-7418cfdf7100ebfc69b68d4c46f36ea679ec26e3.tar.gz |
Fix auto timer cancel bug
-rw-r--r-- | lib/stdlib/src/gen_statem.erl | 2 | ||||
-rw-r--r-- | lib/stdlib/test/gen_statem_SUITE.erl | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/stdlib/src/gen_statem.erl b/lib/stdlib/src/gen_statem.erl index ed25799cc2..105b2a4577 100644 --- a/lib/stdlib/src/gen_statem.erl +++ b/lib/stdlib/src/gen_statem.erl @@ -2510,7 +2510,7 @@ cancel_timer(TimeoutType, TimerRef, Timers) -> -compile({inline, [cancel_timer/2]}). cancel_timer(TimeoutType, Timers) -> case Timers of - #{TimeoutType := TimerRef} -> + #{TimeoutType := {TimerRef, _TimeoutMsg}} -> ?cancel_timer(TimeoutType, TimerRef, Timers); #{} -> Timers diff --git a/lib/stdlib/test/gen_statem_SUITE.erl b/lib/stdlib/test/gen_statem_SUITE.erl index 31808a915f..aa4d258cbf 100644 --- a/lib/stdlib/test/gen_statem_SUITE.erl +++ b/lib/stdlib/test/gen_statem_SUITE.erl @@ -826,7 +826,8 @@ state_timeout(_Config) -> self() ! message_to_self, {next_state, state1, {Time,From}, %% Verify that internal events goes before external - [{state_timeout,Time,1}, + [{timeout,Time,1}, % Exercise different cancel code path + {state_timeout,Time,1}, {next_event,internal,1}]} end, state1 => |