[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: About lua_newthread
- From: "Raymond Jacobs" <raymondj@...>
- Date: Thu, 18 May 2006 11:19:46 -0400
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> 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