Software / code / prosody
Comparison
util/startup.lua @ 10934:b4daa697a7ea
util.startup: Configure the GC on startup, using the config or built-in defaults
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 15 Jun 2020 14:16:34 +0100 |
| parent | 10651:1196f1e8d178 |
| child | 10936:d770435f0f84 |
comparison
equal
deleted
inserted
replaced
| 10933:f59bc81245b3 | 10934:b4daa697a7ea |
|---|---|
| 11 local config_warnings; | 11 local config_warnings; |
| 12 | 12 |
| 13 local dependencies = require "util.dependencies"; | 13 local dependencies = require "util.dependencies"; |
| 14 | 14 |
| 15 local original_logging_config; | 15 local original_logging_config; |
| 16 | |
| 17 local default_gc_params = { mode = "incremental", threshold = 105, speed = 250 }; | |
| 16 | 18 |
| 17 local short_params = { D = "daemonize", F = "no-daemonize" }; | 19 local short_params = { D = "daemonize", F = "no-daemonize" }; |
| 18 local value_params = { config = true }; | 20 local value_params = { config = true }; |
| 19 | 21 |
| 20 function startup.parse_args() | 22 function startup.parse_args() |
| 519 print(""); | 521 print(""); |
| 520 os.exit(1); | 522 os.exit(1); |
| 521 end | 523 end |
| 522 end | 524 end |
| 523 | 525 |
| 526 function startup.init_gc() | |
| 527 -- Apply garbage collector settings from the config file | |
| 528 local gc = require "util.gc"; | |
| 529 local gc_settings = config.get("*", "gc") or { mode = default_gc_params.mode }; | |
| 530 | |
| 531 local ok, err = gc.configure(gc_settings, default_gc_params); | |
| 532 if not ok then | |
| 533 log("error", "Failed to apply GC configuration: %s", err); | |
| 534 return nil, err; | |
| 535 end | |
| 536 return true; | |
| 537 end | |
| 538 | |
| 524 function startup.make_host(hostname) | 539 function startup.make_host(hostname) |
| 525 return { | 540 return { |
| 526 type = "local", | 541 type = "local", |
| 527 events = prosody.events, | 542 events = prosody.events, |
| 528 modules = {}, | 543 modules = {}, |
| 549 startup.parse_args(); | 564 startup.parse_args(); |
| 550 startup.init_global_state(); | 565 startup.init_global_state(); |
| 551 startup.read_config(); | 566 startup.read_config(); |
| 552 startup.force_console_logging(); | 567 startup.force_console_logging(); |
| 553 startup.init_logging(); | 568 startup.init_logging(); |
| 569 startup.init_gc(); | |
| 554 startup.setup_plugindir(); | 570 startup.setup_plugindir(); |
| 555 -- startup.setup_plugin_install_path(); | 571 -- startup.setup_plugin_install_path(); |
| 556 startup.setup_datadir(); | 572 startup.setup_datadir(); |
| 557 startup.chdir(); | 573 startup.chdir(); |
| 558 startup.read_version(); | 574 startup.read_version(); |
| 571 prosody.process_type = "prosody"; | 587 prosody.process_type = "prosody"; |
| 572 startup.parse_args(); | 588 startup.parse_args(); |
| 573 startup.init_global_state(); | 589 startup.init_global_state(); |
| 574 startup.read_config(); | 590 startup.read_config(); |
| 575 startup.init_logging(); | 591 startup.init_logging(); |
| 592 startup.init_gc(); | |
| 576 startup.sanity_check(); | 593 startup.sanity_check(); |
| 577 startup.sandbox_require(); | 594 startup.sandbox_require(); |
| 578 startup.set_function_metatable(); | 595 startup.set_function_metatable(); |
| 579 startup.check_dependencies(); | 596 startup.check_dependencies(); |
| 580 startup.init_logging(); | 597 startup.init_logging(); |