aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2018-03-22 16:24:22 +0000
committerMatthew Wild <mwild1@gmail.com>2018-03-22 16:24:22 +0000
commit791c1f87fd78d002c36eea5292987c8ff49bb4fb (patch)
treed7a3d6749ab34785adf8f3f6960ae800611b3107
parent5ff19eaa6f165739edddc7c16c34ed02553ef7eb (diff)
downloadprosody-791c1f87fd78d002c36eea5292987c8ff49bb4fb.tar.gz
prosody-791c1f87fd78d002c36eea5292987c8ff49bb4fb.zip
util.startup: Execute startup routine inside async context
-rw-r--r--util/startup.lua45
1 files changed, 24 insertions, 21 deletions
diff --git a/util/startup.lua b/util/startup.lua
index fbfa772e..1bac7399 100644
--- a/util/startup.lua
+++ b/util/startup.lua
@@ -5,6 +5,7 @@ local startup = {};
local prosody = { events = require "util.events".new() };
local config = require "core.configmanager";
+local async = require "util.async";
local dependencies = require "util.dependencies";
@@ -497,27 +498,29 @@ function startup.prosodyctl()
end
function startup.prosody()
- -- These actions are in a strict order, as many depend on
- -- previous steps to have already been performed
- startup.read_config();
- startup.sanity_check();
- startup.sandbox_require();
- startup.set_function_metatable();
- startup.check_dependencies();
- startup.load_libraries();
- startup.init_global_state();
- startup.init_logging();
- startup.chdir();
- startup.add_global_prosody_functions();
- startup.read_version();
- startup.log_greeting();
- startup.log_dependency_warnings();
- startup.load_secondary_libraries();
- startup.init_http_client();
- startup.init_data_store();
- startup.init_global_protection();
- startup.prepare_to_start();
- startup.notify_started();
+ async.once(function ()
+ -- These actions are in a strict order, as many depend on
+ -- previous steps to have already been performed
+ startup.read_config();
+ startup.sanity_check();
+ startup.sandbox_require();
+ startup.set_function_metatable();
+ startup.check_dependencies();
+ startup.load_libraries();
+ startup.init_global_state();
+ startup.init_logging();
+ startup.chdir();
+ startup.add_global_prosody_functions();
+ startup.read_version();
+ startup.log_greeting();
+ startup.log_dependency_warnings();
+ startup.load_secondary_libraries();
+ startup.init_http_client();
+ startup.init_data_store();
+ startup.init_global_protection();
+ startup.prepare_to_start();
+ startup.notify_started();
+ end);
end
return startup;