From 1ac8271d77eeecef8d9eaca62041b9068662b14f Mon Sep 17 00:00:00 2001 From: Mikhail Uvarov Date: Mon, 13 May 2024 17:19:11 +0200 Subject: [PATCH] Monitorr stopping peers --- test/cets_test_peer.erl | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/test/cets_test_peer.erl b/test/cets_test_peer.erl index be33877..062d97a 100644 --- a/test/cets_test_peer.erl +++ b/test/cets_test_peer.erl @@ -26,7 +26,7 @@ start(Names, Config) -> stop(Config) -> Peers = proplists:get_value(peers, Config), - [peer:stop(Peer) || Peer <- maps:values(Peers)], + [slow_task("peer:stop", fun() -> peer:stop(Peer) end) || Peer <- maps:values(Peers)], ok. name(Node) -> @@ -98,3 +98,19 @@ disconnect_node_by_name(Config, Id) -> lists:member(Node, nodes()) end, cets_test_wait:wait_until(F, false). + +slow_task(What, F) -> + Self = self(), + Pid = spawn_link(fun() -> monitor_loop(What, Self) end), + Res = F(), + Pid ! stop, + Res. + +monitor_loop(What, Pid) -> + receive + stop -> + ok + after 1000 -> + ct:pal("monitor_loop ~p ~p", [What, erlang:process_info(Pid, current_stacktrace)]), + monitor_loop(What, Pid) + end.