Comparison

util/startup.lua @ 8682:151ecd18d624

prosody, util.startup: Switch from async.once() to long-lived thread, to avoid GC
author Matthew Wild <mwild1@gmail.com>
date Fri, 23 Mar 2018 14:18:27 +0000
parent 8673:6aeed79d9283
child 8688:019b4b3dd5ad
comparison
equal deleted inserted replaced
8681:0c077800cd70 8682:151ecd18d624
3 local startup = {}; 3 local startup = {};
4 4
5 local prosody = { events = require "util.events".new() }; 5 local prosody = { events = require "util.events".new() };
6 6
7 local config = require "core.configmanager"; 7 local config = require "core.configmanager";
8 local async = require "util.async";
9 8
10 local dependencies = require "util.dependencies"; 9 local dependencies = require "util.dependencies";
11 10
12 local original_logging_config; 11 local original_logging_config;
13 12
499 startup.init_http_client(); 498 startup.init_http_client();
500 startup.make_dummy_hosts(); 499 startup.make_dummy_hosts();
501 end 500 end
502 501
503 function startup.prosody() 502 function startup.prosody()
504 async.once(function () 503 -- These actions are in a strict order, as many depend on
505 -- These actions are in a strict order, as many depend on 504 -- previous steps to have already been performed
506 -- previous steps to have already been performed 505 startup.read_config();
507 startup.read_config(); 506 startup.sanity_check();
508 startup.sanity_check(); 507 startup.sandbox_require();
509 startup.sandbox_require(); 508 startup.set_function_metatable();
510 startup.set_function_metatable(); 509 startup.check_dependencies();
511 startup.check_dependencies(); 510 startup.load_libraries();
512 startup.load_libraries(); 511 startup.init_global_state();
513 startup.init_global_state(); 512 startup.init_logging();
514 startup.init_logging(); 513 startup.chdir();
515 startup.chdir(); 514 startup.add_global_prosody_functions();
516 startup.add_global_prosody_functions(); 515 startup.read_version();
517 startup.read_version(); 516 startup.log_greeting();
518 startup.log_greeting(); 517 startup.log_dependency_warnings();
519 startup.log_dependency_warnings(); 518 startup.load_secondary_libraries();
520 startup.load_secondary_libraries(); 519 startup.init_http_client();
521 startup.init_http_client(); 520 startup.init_data_store();
522 startup.init_data_store(); 521 startup.init_global_protection();
523 startup.init_global_protection(); 522 startup.prepare_to_start();
524 startup.prepare_to_start(); 523 startup.notify_started();
525 startup.notify_started();
526 end);
527 end 524 end
528 525
529 return startup; 526 return startup;