File 0473-stdlib-Fix-hanging-ets_SUITE-t_delete_all_objects.patch of Package erlang
From f4518eb483b42af58d22778d0e143755e1af2879 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Fri, 30 Aug 2019 19:37:42 +0200
Subject: [PATCH] stdlib: Fix hanging ets_SUITE:t_delete_all_objects
---
lib/stdlib/test/ets_SUITE.erl | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/lib/stdlib/test/ets_SUITE.erl b/lib/stdlib/test/ets_SUITE.erl
index 09238ae2b4..2e222562c4 100644
--- a/lib/stdlib/test/ets_SUITE.erl
+++ b/lib/stdlib/test/ets_SUITE.erl
@@ -960,7 +960,7 @@ t_delete_all_objects_do(Opts) ->
%% Test delete_all_objects is atomic
T2 = ets:new(t_delete_all_objects, [public | Opts]),
Self = self(),
- Inserters = [spawn_link(fun() -> inserter(T2, 100*1000, 1, Self) end) || _ <- [1,2,3,4]],
+ Inserters = [spawn_link(fun() -> inserter(T2, 1, Self) end) || _ <- [1,2,3,4]],
[receive {Ipid, running} -> ok end || Ipid <- Inserters],
ets:delete_all_objects(T2),
@@ -991,23 +991,26 @@ t_delete_all_objects_do(Opts) ->
ets:delete(T2).
-inserter(_, 0, _, _) ->
- ok;
-inserter(T, N, Next, Papa) ->
- case Next of
- 10*1000 ->
- Papa ! {self(), running};
- _ ->
- ok
- end,
+inserter(T, Next, Papa) ->
+ Wait = case Next of
+ 10*1000 ->
+ Papa ! {self(), running},
+ 0;
+ 100*1000 -> %% We most often don't reach this far
+ io:format("Inserter ~p reached ~p objects\n",
+ [self(), Next]),
+ infinity;
+ _ ->
+ 0
+ end,
ets:insert(T, {{Next, self()}}),
receive
stop ->
Papa ! {self(), stopped, Next},
ok
- after 0 ->
- inserter(T, N-1, Next+1, Papa)
+ after Wait ->
+ inserter(T, Next+1, Papa)
end.
--
2.16.4