File 2671-megaco-Timer-cancellation-improvements.patch of Package erlang
From 53f5fed1a7f0088da7b3701eec7ef24929f78160 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Tue, 3 Sep 2019 15:11:05 +0200
Subject: [PATCH 1/3] [megaco] Timer cancellation improvements
When cancel a (megaco) timer, a failure (that is, a timer that has
already expired) was converted to success. This in turn could
confuse the (timer) test suite.
---
lib/megaco/src/engine/megaco_monitor.erl | 2 +-
lib/megaco/test/megaco_timer_test.erl | 4 +---
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/lib/megaco/src/engine/megaco_monitor.erl b/lib/megaco/src/engine/megaco_monitor.erl
index 877509a776..8f4741b202 100644
--- a/lib/megaco/src/engine/megaco_monitor.erl
+++ b/lib/megaco/src/engine/megaco_monitor.erl
@@ -193,7 +193,7 @@ cancel_apply_after({apply_after, Ref}) ->
TimeLeft when is_integer(TimeLeft) ->
{ok, TimeLeft};
_ ->
- {ok, 0}
+ {error, {already_expired, Ref}}
end;
cancel_apply_after(apply_after_infinity) ->
ok;
diff --git a/lib/megaco/test/megaco_timer_test.erl b/lib/megaco/test/megaco_timer_test.erl
index 84c314d8ed..9809704af3 100644
--- a/lib/megaco/test/megaco_timer_test.erl
+++ b/lib/megaco/test/megaco_timer_test.erl
@@ -360,12 +360,10 @@ integer_timer_start_and_stop(Config) when is_list(Config) ->
error(bad_timeout)
after Timeout - 100 ->
case tmr_stop(Ref) of
- ok ->
- ok;
{ok, _} ->
ok;
CancelRes ->
- ?SKIP({cancel_failed, CancelRes})
+ ?SKIP({cancel_failed, CancelRes}) % Race - not our problem
end
end,
--
2.16.4