lua-users home
lua-l archive

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


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