]> git.lizzy.rs Git - lua_async.git/commitdiff
More efficient sleep() implementation
authorElias Fleckenstein <eliasfleckenstein@web.de>
Fri, 6 Aug 2021 19:13:58 +0000 (21:13 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Fri, 6 Aug 2021 19:13:58 +0000 (21:13 +0200)
util.lua

index 852b933e85d4760ebf04f04eff1eb4d66b0b39af..b3fc4f7eb83712dbaa8b39f41c44fcbc3886a4b3 100644 (file)
--- a/util.lua
+++ b/util.lua
@@ -1,9 +1,5 @@
 function lua_async.yield()
-       local co = assert(coroutine.running(), "yield called outside of an async function")
-
-       setTimeout(lua_async.resume, 0, co)
-
-       coroutine.yield()
+       lua_async.sleep(0)
 end
 
 function lua_async.kill_thread()
@@ -11,9 +7,10 @@ function lua_async.kill_thread()
 end
 
 function lua_async.sleep(ms)
-       await(Promise(function(resolve)
-               setTimeout(resolve, ms)
-       end))
+       local co = assert(coroutine.running(), "sleep called outside of an async function")
+       setTimeout(lua_async.resume, ms, co)
+
+       coroutine.yield()
 end
 
 function lua_async.run()