获取用于在Lua中创建协同程序/线程的函数

时间:2015-03-03 07:24:08

标签: lua coroutine

是否可以获得用于创建协程的原始函数?

thread = coroutine.create(function()
   -- Code
end)

f = get_function_from_thread(thread) 

1 个答案:

答案 0 :(得分:4)

您无法开箱即用,但您可以随时重新定义coroutine.create

local create=coroutine.create
local created={}

function coroutine.create(f)
   local t=create(f)
   created[t]=f
   return t
end

function get_function_from_thread(t)
   return created[t]
end

如果您创建了许多协同程序,请考虑将created设置为弱表。