From 5c5c5d17f469a686375aeff95b3ccb9c2ee9767b Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Fri, 6 Aug 2021 21:19:35 +0200 Subject: Implement yield() using a promise and setImmediate --- util.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'util.lua') diff --git a/util.lua b/util.lua index 852b933..e7c6cbf 100644 --- a/util.lua +++ b/util.lua @@ -1,9 +1,7 @@ function lua_async.yield() - local co = assert(coroutine.running(), "yield called outside of an async function") - - setTimeout(lua_async.resume, 0, co) - - coroutine.yield() + await(Promise(function(resolve) + setImmediate(resolve) + end)) end function lua_async.kill_thread() -- cgit v1.2.3