Thanks for any help.
Tom
-----Original Message-----
*From:* lua-bounces@bazar2.conectiva.com.br
[mailto:lua-bounces@bazar2.conectiva.com.br]*On Behalf Of* Raymond Jacobs
*Sent:* 18 May 2006 16:20
*To:* Lua list
*Subject:* Re: About lua_newthread
When you are done with a thread (when lua_resume returns and it's
not a yield), you should remove the thread directly from the
stack, this will remove the reference to it and it can then be
garbage collected (its a pain I know =/).
another method which I've not yet done but should work, is to
create a new thread, create a lua reference to it (using lua_ref)
then pop it off the stack immediately (so it doesn't get buried),
and later when you are done with it, destroy the reference
(lua_unref) and that should allow it to be GC'd
hope that helps,
Raymond Jacobs
Owner,
Ethereal Darkness Interactive
On 5/18/06, *mos* <mmosquito@163.com <mailto:mmosquito@163.com>>
wrote:
Hi
in lua5.1 manual:
lua_newthread
lua_State *lua_newthread (lua_State *L);
There is no explicit function to close or to destroy a thread.
Threads are
subject to garbage collection, like any Lua object
I don't understand this , for example like Npc in a game
function AI()
while(true) do
walkto(A)
walkto(B)
...
walkto(Z)
end
end
I bind each npc with a lua_State by lua_newthread
but the npc will die and i should close the lua_State ,
but I can
not.
what can I do ? or some better suggestion ?
Best Regards
mos