aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2019-04-24 13:46:09 +0200
committerPaweł Chmielowski <pchmielowski@process-one.net>2019-04-24 13:46:16 +0200
commit8b501f5fe674e8db217c7f72c374ca60494658bc (patch)
treee8d0fcc4ba4afee23e4960aac32b3e72d05b97cd
parentReformat try_set_password/4 function (diff)
Catch potential exceptions in gen_mod:wait_for_process
Seems that at ejabberd shutdown, process may terminate before that function is called, and in that case erlang:monitor throws exception.
-rw-r--r--src/gen_mod.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gen_mod.erl b/src/gen_mod.erl
index cec3ddb24..4dc972fd9 100644
--- a/src/gen_mod.erl
+++ b/src/gen_mod.erl
@@ -364,8 +364,13 @@ stop_module_keep_config(Host, Module) ->
end.
wait_for_process(Process) ->
- MonitorReference = erlang:monitor(process, Process),
- wait_for_stop(Process, MonitorReference).
+ try erlang:monitor(process, Process) of
+ MonitorReference ->
+ wait_for_stop(Process, MonitorReference)
+ catch
+ _:_ ->
+ ok
+ end.
wait_for_stop(Process, MonitorReference) ->
receive