util.async: Add Teal description file

This commit is contained in:
Kim Alvefur 2022-05-08 15:21:35 +02:00
parent 1c6747f200
commit 117c340edb
2 changed files with 43 additions and 1 deletions

View file

@ -88,7 +88,7 @@ local function run_task(task : task_spec)
task:save(started_at);
end
local task_runner = async.runner(run_task);
local task_runner : async.runner_t<task_spec> = async.runner(run_task);
module:add_timer(1, function() : integer
module:log("info", "Running periodic tasks");
local delay = 3600;

42
teal-src/util/async.d.tl Normal file
View file

@ -0,0 +1,42 @@
local record lib
ready : function () : boolean
waiter : function (num : integer, allow_many : boolean) : function (), function ()
guarder : function () : function (id : function ()) : function () | nil
record runner_t<T>
func : function (T)
thread : thread
enum state_e
-- from Lua manual
"running"
"suspended"
"normal"
"dead"
-- from util.async
"ready"
"error"
end
state : state_e
notified_state : state_e
queue : { T }
type watcher_t = function (runner_t<T>, ... : any)
type watchers_t = { state_e : watcher_t }
data : any
id : string
run : function (runner_t<T>, T) : boolean, state_e, integer
enqueue : function (runner_t<T>, T) : runner_t<T>
log : function (runner_t<T>, string, string, ... : any)
onready : function (runner_t<T>, function) : runner_t<T>
onready : function (runner_t<T>, function) : runner_t<T>
onwaiting : function (runner_t<T>, function) : runner_t<T>
onerror : function (runner_t<T>, function) : runner_t<T>
end
runner : function <T>(function (T), runner_t.watchers_t, any) : runner_t<T>
wait_for : function (any) : any, any
sleep : function (t:number)
-- set_nexttick = function(new_next_tick) next_tick = new_next_tick; end;
-- set_schedule_function = function (new_schedule_function) schedule_task = new_schedule_function; end;
end
return lib