Software /
code /
prosody
File
teal-src/util/async.d.tl @ 12828:f33887f925e1
net.server_epoll: Remove delay on last main loop iteration when quitting
Main difference is that timers are not checked unconditionally before
each poll, only when running out of previous poll results (hidden by
util.poll). This removes a final poll at shutdown that usually delays
the 'not quitting' condition check by one second.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 06 Jan 2023 04:38:39 +0100 |
parent | 12498:c3e47a5dd30d |
line wrap: on
line source
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