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

openSUSE Build Service is sponsored by