[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: How to terminate lua script correctly?
- From: Rob Hoelz <rob@...>
- Date: Wed, 26 Sep 2012 09:52:59 +0200
On 9/26/12 9:11 AM, Булычев Михаил wrote:
> Suppose we have the following code:
>
> DWORD WINAPI MainCodeThread(LPVOID param)
> {
> LuaScript *script=(LuaScript*)param;
> lua_State *main = script->MainCode();
> //test
>
> //
> lua_getfield (main, LUA_GLOBALSINDEX, "main");
> script->SetState(STATE_STARTED);
> int lua_err = lua_pcall(main, 0, 0, 0);
> if (lua_err)
> {
> sprintf(script->LastError(), "%s", lua_tostring(main, -1));
> lua_pop(main, 1);
> script->SetState(STATE_STOPPED);
> return lua_err;
> }
> script->SetState(STATE_STOPPED);
> return 0;
>
>
> ...
> HANDLE mainCodeThread = CreateThread(NULL, 0, MainCodeThread, this, 0,
> NULL);
> ...
>
> how to terminate thread and close lua VM correctly?
> Use lua_error() leads us to exception.
>
Hi,
lua_close(L) will destroy a lua_State for you.
-Rob