lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


I'm having some problems with a coroutine I create. Here is the order of things:

I create a lua_State and load 3 files into it, each containing its own function as follows:

In file1:

function init()
   print "init"
   co = coroutine.create(process)
   coroutine.resume(co)
end

In file2:

function process()
   print "yielding the coroutine"
   coroutine.yield()
   print "running again"
end

In file3:

function callback()
   print "resuming"
   print(coroutine.resume(co))
end


Now, when I make a lua_pcall to init, the coroutine starts the process function just like I would expect. Once it yields, I run off and do some stuff in my c code, and then pcall callback to wake the coroutine back up. However the call to resume is failing. Here is my output:

init
yielding the coroutine
c++ - doing some work
resuming
false   cannot resume non-suspended coroutine

Any ideas as to where I've gone wrong?