]> git.lizzy.rs Git - lua_async.git/blob - util.lua
Revert "More efficient sleep() implementation"
[lua_async.git] / util.lua
1 function lua_async.yield()
2         local co = assert(coroutine.running(), "yield called outside of an async function")
3
4         setTimeout(lua_async.resume, 0, co)
5
6         coroutine.yield()
7 end
8
9 function lua_async.kill_thread()
10         coroutine.yield(true)
11 end
12
13 function lua_async.sleep(ms)
14         await(Promise(function(resolve)
15                 setTimeout(resolve, ms)
16         end))
17 end
18
19 function lua_async.run()
20         local last_time = os.clock()
21
22         while true do
23                 local current_time = os.clock()
24                 local dtime = current_time - last_time
25                 last_time = current_time
26
27                 lua_async.step(dtime)
28         end
29 end