Software /
code /
prosody
Diff
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 |
line wrap: on
line diff
--- a/util/startup.lua Mon Jun 15 14:16:10 2020 +0100 +++ b/util/startup.lua Mon Jun 15 14:16:34 2020 +0100 @@ -14,6 +14,8 @@ local original_logging_config; +local default_gc_params = { mode = "incremental", threshold = 105, speed = 250 }; + local short_params = { D = "daemonize", F = "no-daemonize" }; local value_params = { config = true }; @@ -521,6 +523,19 @@ end end +function startup.init_gc() + -- Apply garbage collector settings from the config file + local gc = require "util.gc"; + local gc_settings = config.get("*", "gc") or { mode = default_gc_params.mode }; + + local ok, err = gc.configure(gc_settings, default_gc_params); + if not ok then + log("error", "Failed to apply GC configuration: %s", err); + return nil, err; + end + return true; +end + function startup.make_host(hostname) return { type = "local", @@ -551,6 +566,7 @@ startup.read_config(); startup.force_console_logging(); startup.init_logging(); + startup.init_gc(); startup.setup_plugindir(); -- startup.setup_plugin_install_path(); startup.setup_datadir(); @@ -573,6 +589,7 @@ startup.init_global_state(); startup.read_config(); startup.init_logging(); + startup.init_gc(); startup.sanity_check(); startup.sandbox_require(); startup.set_function_metatable();