From 77f412e7e8ab1bd040be1973f030c00a42f4176e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jefferson=20Gonz=C3=A1lez?= Date: Fri, 19 May 2023 10:28:39 -0700 Subject: [PATCH] Close lua state when exiting on a runtime error (#1487) * Close lua state when exiting on a runtime error * This change allows calling the garbage collector before exiting the application for a cleaner shutdown. * Components like the shared memory object on #1486 will have a better chance at destroying no longer needed resources. * Overriden os.exit to always close the state * Allow setting close param on os.exit override * Simplified the os.exit override a bit more Co-authored-by: Guldoman --------- Co-authored-by: Guldoman --- src/main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main.c b/src/main.c index e3a9b1ac..1d1b78ee 100644 --- a/src/main.c +++ b/src/main.c @@ -227,6 +227,10 @@ init_lua: const char *init_lite_code = \ "local core\n" + "local os_exit = os.exit\n" + "os.exit = function(code, close)\n" + " os_exit(code, close == nil and true or close)\n" + "end\n" "xpcall(function()\n" " local match = require('utf8extra').match\n" " HOME = os.getenv('" LITE_OS_HOME "')\n"