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