File 0452-kernel-Correct-a-test-case-in-global_SUITE.patch of Package erlang

From b81ebdf125a76c2ad3594eb37482a24137c502b6 Mon Sep 17 00:00:00 2001
From: Hans Bolinder <hasse@erlang.org>
Date: Wed, 26 Jun 2019 14:47:30 +0200
Subject: [PATCH] kernel: Correct a test case in global_SUITE

---
 lib/kernel/test/global_SUITE.erl | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/lib/kernel/test/global_SUITE.erl b/lib/kernel/test/global_SUITE.erl
index 8eab36e308..5bff9cc292 100644
--- a/lib/kernel/test/global_SUITE.erl
+++ b/lib/kernel/test/global_SUITE.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 1997-2018. All Rights Reserved.
+%% Copyright Ericsson AB 1997-2019. All Rights Reserved.
 %%
 %% Licensed under the Apache License, Version 2.0 (the "License");
 %% you may not use this file except in compliance with the License.
@@ -2512,8 +2512,10 @@ re_register_name(Config) when is_list(Config) ->
     Me = self(),
     Pid1 = spawn(fun() -> proc(Me) end),
     yes = global:register_name(name, Pid1),
+    wait_for_monitor(Pid1),
     Pid2 = spawn(fun() -> proc(Me) end),
     _ = global:re_register_name(name, Pid2),
+    wait_for_monitor(Pid2),
     Pid2 ! die,
     Pid1 ! die,
     receive {Pid1, MonitoredBy1} -> [] = MonitoredBy1 end,
@@ -2522,6 +2524,15 @@ re_register_name(Config) when is_list(Config) ->
     init_condition(Config),
     ok.
 
+wait_for_monitor(Pid) ->
+    case process_info(Pid, monitored_by) of
+        {monitored_by, []} ->
+            timer:sleep(1),
+            wait_for_monitor(Pid);
+        {monitored_by, [_]} ->
+            ok
+    end.
+
 proc(Parent) ->
     receive die -> ok end,
     {monitored_by, MonitoredBy} = process_info(self(), monitored_by),
-- 
2.16.4

openSUSE Build Service is sponsored by