Software /
code /
prosody
Comparison
util/startup.lua @ 12863:891edd1ebde6 0.12
util.startup: Close state on exit to ensure GC finalizers are called
Ensures a last round of garbage collection and that finalizers are
called. Fixes things like proper closing of SQLite3 state.
There are more calls to os.exit() but most of them exit with an error or
in a case where a final GC sweep might not matter as much.
It would be nice if this was the default.
Calling util.statup.exit() everywhere may be sensible, but would be more
involved, requiring imports everywhere.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 22 Jan 2023 14:45:47 +0100 |
parent | 12779:f0474d40364c |
child | 12864:9f9633364044 |
comparison
equal
deleted
inserted
replaced
12862:3dfb87814d65 | 12863:891edd1ebde6 |
---|---|
646 prosody.log("debug", "Exiting with status code: %d", prosody.shutdown_code or 0); | 646 prosody.log("debug", "Exiting with status code: %d", prosody.shutdown_code or 0); |
647 server.setquitting(true); | 647 server.setquitting(true); |
648 end | 648 end |
649 | 649 |
650 function startup.exit() | 650 function startup.exit() |
651 os.exit(prosody.shutdown_code); | 651 os.exit(prosody.shutdown_code, true); |
652 end | 652 end |
653 | 653 |
654 -- prosodyctl only | 654 -- prosodyctl only |
655 function startup.prosodyctl() | 655 function startup.prosodyctl() |
656 prosody.process_type = "prosodyctl"; | 656 prosody.process_type = "prosodyctl"; |