diff options
author | Matthew Wild <mwild1@gmail.com> | 2018-03-23 14:18:27 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2018-03-23 14:18:27 +0000 |
commit | 59e03259d1126b6c0bb3a2c2cdea4f967bb23bd8 (patch) | |
tree | 5710c3eba810dec6c6ba98f0bb9d9388fb7993e2 /prosody | |
parent | 8a38579fa00e08ea10ff0eee2e4cdb7cd6bb1a3a (diff) | |
download | prosody-59e03259d1126b6c0bb3a2c2cdea4f967bb23bd8.tar.gz prosody-59e03259d1126b6c0bb3a2c2cdea4f967bb23bd8.zip |
prosody, util.startup: Switch from async.once() to long-lived thread, to avoid GC
Diffstat (limited to 'prosody')
-rwxr-xr-x | prosody | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -50,8 +50,13 @@ if #arg > 0 and arg[1] ~= "--config" then end local startup = require "util.startup"; +local async = require "util.async"; -startup.prosody(); +-- Note: it's important that this thread is not GC'd, as some C libraries +-- that are initialized here store a pointer to it ( :/ ). +local thread = async.runner(); + +thread:run(startup.prosody); local function loop() -- Error handler for errors that make it this far @@ -88,4 +93,4 @@ cleanup(); prosody.events.fire_event("server-stopped"); log("info", "Shutdown complete"); -os.exit(prosody.shutdown_code) +os.exit(prosody.shutdown_code); |