changeset 2159:967012bebfe0 nginx_sites_addon

add run_clean
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 28 Jan 2026 17:42:16 -0700
parents b235600ea89b
children 034b5f1b025c
files src/luan/host/run.luan src/luan/modules/BasicLuan.java src/luan/modules/Luan.luan
diffstat 3 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
diff -r b235600ea89b -r 967012bebfe0 src/luan/host/run.luan
--- a/src/luan/host/run.luan	Tue Jan 27 21:50:37 2026 -0700
+++ b/src/luan/host/run.luan	Wed Jan 28 17:42:16 2026 -0700
@@ -3,8 +3,8 @@
 local error = Luan.error
 local ipairs = Luan.ipairs or error()
 local do_file = Luan.do_file or error()
+local run_clean = Luan.run_clean or error()
 local Package = require "luan:Package.luan"
-local Thread = require "luan:Thread.luan"
 local Number = require "luan:Number.luan"
 local long = Number.long or error()
 local Io = require "luan:Io.luan"
@@ -85,7 +85,10 @@
 	local sites_dir = Io.schemes.file("nginx_sites")
 	for _, site_dir in ipairs(sites_dir.children() or {}) do
 		local name = site_dir.name()
-		Thread.run( function()
+		run_clean( function()
+			local Io = require "luan:Io.luan"
+			local Package = require "luan:Package.luan"
+
 			function Io.schemes.site(path,loading)
 				local u =  Io.uri( "file:nginx_sites/"..name..path, loading )
 				u.uri_string = "site:"..path
diff -r b235600ea89b -r 967012bebfe0 src/luan/modules/BasicLuan.java
--- a/src/luan/modules/BasicLuan.java	Tue Jan 27 21:50:37 2026 -0700
+++ b/src/luan/modules/BasicLuan.java	Wed Jan 28 17:42:16 2026 -0700
@@ -278,7 +278,16 @@
 	public static void exit(Luan luan,int status) throws LuanException {
 		Luan.checkSecurity(luan,"exit");
 		System.exit(status);
-	}
+	}
 
+	public static void run_clean(Luan luan,LuanFunction fn) throws LuanException {
+		Luan.Security security = luan.getSecurity();
+		luan = new Luan();
+		if( security != null )
+			Luan.setSecurity(luan,security);
+		LuanMutable.makeImmutable(fn);
+		fn.call(luan);
+	}
+
 	private void BasicLuan() {}  // never
 }
diff -r b235600ea89b -r 967012bebfe0 src/luan/modules/Luan.luan
--- a/src/luan/modules/Luan.luan	Tue Jan 27 21:50:37 2026 -0700
+++ b/src/luan/modules/Luan.luan	Wed Jan 28 17:42:16 2026 -0700
@@ -23,6 +23,7 @@
 Luan.raw_get = BasicLuan.raw_get
 Luan.raw_len = BasicLuan.raw_len
 Luan.raw_set = BasicLuan.raw_set
+Luan.run_clean = BasicLuan.run_clean
 Luan.set_metatable = BasicLuan.set_metatable
 Luan.stringify = BasicLuan.stringify
 Luan.to_string = BasicLuan.to_string