diff options
author | Anders Svensson <[email protected]> | 2015-03-05 01:27:30 +0100 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2015-03-05 01:27:30 +0100 |
commit | d1c58149851faf22d3b05e71d011f86324aba01d (patch) | |
tree | 97344f4bfdb196887311076f5b9b6ce1e4bdcb0e /lib/diameter/src/base/diameter_lib.erl | |
parent | 60954931caea08ae05f56db698877d70ee977655 (diff) | |
parent | 2b1ec3dc6d936f6e885dfe23ea68ed54c98bb950 (diff) | |
download | otp-d1c58149851faf22d3b05e71d011f86324aba01d.tar.gz otp-d1c58149851faf22d3b05e71d011f86324aba01d.tar.bz2 otp-d1c58149851faf22d3b05e71d011f86324aba01d.zip |
Merge branch 'anders/diameter/shutdown/OTP-12412' into maint
* anders/diameter/shutdown/OTP-12412:
Increase service shutdown timeout
Set shutdown = infinity for supervisor children
Monitor more efficiently at shutdown
Diffstat (limited to 'lib/diameter/src/base/diameter_lib.erl')
-rw-r--r-- | lib/diameter/src/base/diameter_lib.erl | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/diameter/src/base/diameter_lib.erl b/lib/diameter/src/base/diameter_lib.erl index 5b3a2063f8..b5f1ae3937 100644 --- a/lib/diameter/src/base/diameter_lib.erl +++ b/lib/diameter/src/base/diameter_lib.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2010-2014. All Rights Reserved. +%% Copyright Ericsson AB 2010-2015. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -247,17 +247,19 @@ opts(HeapSize, Opts) -> %% # wait/1 %% --------------------------------------------------------------------------- --spec wait([pid()]) +-spec wait([pid() | reference()]) -> ok. wait(L) -> - down([erlang:monitor(process, P) || P <- L]). + lists:foreach(fun down/1, L). -down([]) -> - ok; -down([MRef|T]) -> - receive {'DOWN', MRef, process, _, _} -> ok end, - down(T). +down(Pid) + when is_pid(Pid) -> + down(monitor(process, Pid)); + +down(MRef) + when is_reference(MRef) -> + receive {'DOWN', MRef, process, _, _} = T -> T end. %% --------------------------------------------------------------------------- %% # fold_tuple/3 |