aboutsummaryrefslogtreecommitdiffstats
path: root/teal-src/util/async.d.tl
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2022-05-08 15:21:35 +0200
committerKim Alvefur <zash@zash.se>2022-05-08 15:21:35 +0200
commit117c340edbb7512b911038e40201e64135b966f8 (patch)
treee0360f825b922dfe856021476d44c2f780a2c4ab /teal-src/util/async.d.tl
parent1c6747f200505db7900204a9297b97c82c959df1 (diff)
downloadprosody-117c340edbb7512b911038e40201e64135b966f8.tar.gz
prosody-117c340edbb7512b911038e40201e64135b966f8.zip
util.async: Add Teal description file
Diffstat (limited to 'teal-src/util/async.d.tl')
-rw-r--r--teal-src/util/async.d.tl42
1 files changed, 42 insertions, 0 deletions
diff --git a/teal-src/util/async.d.tl b/teal-src/util/async.d.tl
new file mode 100644
index 00000000..a2e41cd6
--- /dev/null
+++ b/teal-src/util/async.d.tl
@@ -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