aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2024-09-02 17:48:36 -0300
committerHisham Muhammad <hisham@gobolinux.org>2024-10-21 13:30:51 -0300
commitaa3199def734b492059fcaccdebd3cde85cb8547 (patch)
tree21cf0c7cde073b56f4ddbf7c846441f519b97982 /src
parent7aac852ddead017c90c775991801e2f7dadc84e0 (diff)
downloadluarocks-aa3199def734b492059fcaccdebd3cde85cb8547.tar.gz
luarocks-aa3199def734b492059fcaccdebd3cde85cb8547.tar.bz2
luarocks-aa3199def734b492059fcaccdebd3cde85cb8547.zip
Teal: make schedule_function generic
Diffstat (limited to 'src')
-rw-r--r--src/luarocks/util.lua6
-rw-r--r--src/luarocks/util.tl10
2 files changed, 8 insertions, 8 deletions
diff --git a/src/luarocks/util.lua b/src/luarocks/util.lua
index 7035f305..0ea480be 100644
--- a/src/luarocks/util.lua
+++ b/src/luarocks/util.lua
@@ -56,8 +56,8 @@ local scheduled_functions = {}
56 56
57 57
58 58
59function util.schedule_function(f, ...) 59function util.schedule_function(f, x)
60 local item = { fn = f, args = _tl_table_pack(...) } 60 local item = { fn = f, arg = x }
61 table.insert(scheduled_functions, item) 61 table.insert(scheduled_functions, item)
62 return item 62 return item
63end 63end
@@ -87,7 +87,7 @@ function util.run_scheduled_functions()
87 end 87 end
88 for i = #scheduled_functions, 1, -1 do 88 for i = #scheduled_functions, 1, -1 do
89 local item = scheduled_functions[i] 89 local item = scheduled_functions[i]
90 item.fn(_tl_table_unpack(item.args, 1, item.args.n)) 90 item.fn(item.arg)
91 end 91 end
92end 92end
93 93
diff --git a/src/luarocks/util.tl b/src/luarocks/util.tl
index 823ee1db..80d39b16 100644
--- a/src/luarocks/util.tl
+++ b/src/luarocks/util.tl
@@ -24,8 +24,8 @@ local record util
24 matchquote: function(string): string 24 matchquote: function(string): string
25 25
26 record Fn 26 record Fn
27 fn: function(...: any) 27 fn: function(any)
28 args: table.PackTable<any> 28 arg: any
29 end 29 end
30end 30end
31 31
@@ -56,8 +56,8 @@ local scheduled_functions: {Fn} = {}
56-- @param ... arguments to be passed to function. 56-- @param ... arguments to be passed to function.
57-- @return table: A token representing the scheduled execution, 57-- @return table: A token representing the scheduled execution,
58-- which can be used to remove the item later from the list. 58-- which can be used to remove the item later from the list.
59function util.schedule_function(f: function(...: any), ...:any): Fn 59function util.schedule_function<X>(f: function(X...), x?: X): Fn
60 local item: Fn = { fn = f, args = table.pack(...) } 60 local item: Fn = { fn = f, arg = x }
61 table.insert(scheduled_functions, item) 61 table.insert(scheduled_functions, item)
62 return item 62 return item
63end 63end
@@ -87,7 +87,7 @@ function util.run_scheduled_functions(): string --! a hack for xpcall
87 end 87 end
88 for i = #scheduled_functions, 1, -1 do 88 for i = #scheduled_functions, 1, -1 do
89 local item = scheduled_functions[i] 89 local item = scheduled_functions[i]
90 item.fn(table.unpack(item.args, 1, item.args.n)) 90 item.fn(item.arg)
91 end 91 end
92end 92end
93 93