From 5d456dda67020eb5dd98750bcae222e27b85f5d2 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Mon, 29 Mar 2021 00:37:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DTASK=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=9C=A8=E5=8D=8F=E7=A8=8B=E6=8A=A5=E9=94=99=E5=90=8E=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=E5=88=A0=E9=99=A4task=E4=BB=A3=E7=A0=81=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=9C=A8=E9=94=99=E8=AF=AF=E7=95=8C=E9=9D=A2=E8=BF=9E?= =?UTF-8?q?=E7=BB=AD=E7=88=86=E7=82=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zframework/task.lua | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Zframework/task.lua b/Zframework/task.lua index f2685c7c..3fa19084 100644 --- a/Zframework/task.lua +++ b/Zframework/task.lua @@ -1,6 +1,6 @@ local rem=table.remove -local ct=coroutine local assert=assert +local resume,status=coroutine.resume,coroutine.status local tasks={} local TASK={} @@ -10,16 +10,17 @@ end function TASK.update() for i=#tasks,1,-1 do local T=tasks[i] - assert(ct.resume(T.thread)) - if ct.status(T.thread)=="dead"then - rem(tasks,i) + if status(T.thread)=="dead"then + rem(tasks,i) + else + assert(resume(T.thread)) end end end function TASK.new(code,...) - local thread=ct.create(code) - ct.resume(thread,...) - if ct.status(thread)~="dead"then + local thread=coroutine.create(code) + resume(thread,...) + if status(thread)~="dead"then tasks[#tasks+1]={ thread=thread, code=code,