From: Elias Fleckenstein Date: Fri, 6 Aug 2021 20:01:53 +0000 (+0200) Subject: Move resume() to util.lua X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=a8361f73c9ab3c4729872ce6ac99bfa4e97cba90;p=lua_async.git Move resume() to util.lua --- diff --git a/async_await.lua b/async_await.lua index 97d4f7d..6965688 100644 --- a/async_await.lua +++ b/async_await.lua @@ -1,14 +1,15 @@ -lua_async.async_await = {} +function async(func) + return function(...) + local promise = Promise() + promise.__on_resolve = func -function lua_async.resume(co) - local status, err = coroutine.resume(co) + local args = {...} - if coroutine.status(co) == "dead" or err then - lua_async.limiting.unset_limit(co) - end + lua_async.resume(coroutine.create(function() + promise:resolve(unpack(args)) + end)) - if not status then - error("Error (in async function): " .. err) + return promise end end @@ -25,19 +26,3 @@ function await(promise) return unpack(promise.values) end - -function async(func) - return function(...) - local promise = Promise() - promise.__on_resolve = func - - local args = {...} - - lua_async.resume(coroutine.create(function() - promise:resolve(unpack(args)) - end)) - - return promise - end -end - diff --git a/util.lua b/util.lua index e7c6cbf..7061c06 100644 --- a/util.lua +++ b/util.lua @@ -4,16 +4,28 @@ function lua_async.yield() end)) end -function lua_async.kill_thread() - coroutine.yield(true) -end - function lua_async.sleep(ms) await(Promise(function(resolve) setTimeout(resolve, ms) end)) end +function lua_async.kill_thread() + coroutine.yield(true) +end + +function lua_async.resume(co) + local status, err = coroutine.resume(co) + + if coroutine.status(co) == "dead" or err then + lua_async.limiting.unset_limit(co) + end + + if not status then + error("Error (in async function): " .. err) + end +end + function lua_async.run() local last_time = os.clock()