1 function lua_async.yield()
2 await(Promise(function(resolve)
7 function lua_async.sleep(ms)
8 await(Promise(function(resolve)
9 setTimeout(resolve, ms)
13 function lua_async.kill_thread()
17 function lua_async.resume(co)
18 local status, err = coroutine.resume(co)
20 if coroutine.status(co) == "dead" or err then
21 lua_async.limiting.unset_limit(co)
25 error("Error (in async function): " .. err)
29 function lua_async.run()
30 assert(lua_async.socket)
31 local last_time = lua_async.clock()
34 local current_time = lua_async.clock()
35 local dtime = current_time - last_time
36 last_time = current_time
40 local next = math.huge
42 for _, timeout in pairs(lua_async.timeouts.pool) do
43 next = math.min(next, timeout.time_left)
46 for _, interval in pairs(lua_async.intervals.pool) do
47 next = math.min(next, interval.time_left)
50 if next == math.huge then
55 lua_async.socket.sleep(next - dtime)