diff options
author | Ingela Anderton Andin <[email protected]> | 2017-10-25 11:02:51 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2017-10-25 11:02:51 +0200 |
commit | b232eb7b2367019164c5ce29a82dae03d455b986 (patch) | |
tree | 208dfa1f4b9bfae270fed9caae787692e7264a2e /lib | |
parent | c26f0e58f440859abbfb9b4e3570713ac722e0da (diff) | |
parent | bb8477f767a0911eb060916a8028c7472ba678a6 (diff) | |
download | otp-b232eb7b2367019164c5ce29a82dae03d455b986.tar.gz otp-b232eb7b2367019164c5ce29a82dae03d455b986.tar.bz2 otp-b232eb7b2367019164c5ce29a82dae03d455b986.zip |
Merge branch 'ingela/inets/http-sync-close/OTP-14696' into maint
* ingela/inets/http-sync-close/OTP-14696:
inets: Make sure httpd:stop_service is synchronous
Diffstat (limited to 'lib')
-rw-r--r-- | lib/inets/src/http_server/httpd.erl | 9 | ||||
-rw-r--r-- | lib/inets/test/inets_SUITE.erl | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/inets/src/http_server/httpd.erl b/lib/inets/src/http_server/httpd.erl index 0b632d24e3..540e68e749 100644 --- a/lib/inets/src/http_server/httpd.erl +++ b/lib/inets/src/http_server/httpd.erl @@ -99,7 +99,14 @@ start_service(Conf) -> stop_service({Address, Port}) -> stop_service({Address, Port, ?DEFAULT_PROFILE}); stop_service({Address, Port, Profile}) -> - httpd_sup:stop_child(Address, Port, Profile); + Name = httpd_util:make_name("httpd_instance_sup", Address, Port, Profile), + Pid = whereis(Name), + MonitorRef = erlang:monitor(process, Pid), + Result = httpd_sup:stop_child(Address, Port, Profile), + receive + {'DOWN', MonitorRef, _, _, _} -> + Result + end; stop_service(Pid) when is_pid(Pid) -> case service_info(Pid) of {ok, Info} -> diff --git a/lib/inets/test/inets_SUITE.erl b/lib/inets/test/inets_SUITE.erl index 38b8229389..1abd96a228 100644 --- a/lib/inets/test/inets_SUITE.erl +++ b/lib/inets/test/inets_SUITE.erl @@ -213,7 +213,6 @@ start_httpd(Config) when is_list(Config) -> true = lists:member(Pid0, Pids0), [_|_] = inets:services_info(), inets:stop(httpd, Pid0), - ct:sleep(500), Pids1 = [ServicePid || {_, ServicePid} <- inets:services()], false = lists:member(Pid0, Pids1), {ok, Pid0b} = @@ -222,7 +221,6 @@ start_httpd(Config) when is_list(Config) -> true = lists:member(Pid0b, Pids0b), [_|_] = inets:services_info(), inets:stop(httpd, Pid0b), - ct:sleep(500), Pids1 = [ServicePid || {_, ServicePid} <- inets:services()], false = lists:member(Pid0b, Pids1), {ok, Pid1} = |